package com.compomics.util.experiment.identification.parameters_cli; import com.compomics.software.cli.CommandLineUtils; import com.compomics.software.cli.CommandParameter; import com.compomics.util.experiment.biology.Enzyme; import com.compomics.util.experiment.biology.EnzymeFactory; import com.compomics.util.experiment.biology.PTM; import com.compomics.util.experiment.biology.PTMFactory; import com.compomics.util.experiment.biology.ions.PeptideFragmentIon; import com.compomics.util.experiment.identification.Advocate; import com.compomics.util.experiment.identification.filtering.PeptideAssumptionFilter; import com.compomics.util.experiment.identification.identification_parameters.IdentificationAlgorithmParameter; import com.compomics.util.experiment.identification.identification_parameters.SearchParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.AndromedaParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.CometParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.DirecTagParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.MsAmandaParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.MsgfParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.MyriMatchParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.OmssaParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.PNovoParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.PepnovoParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.TideParameters; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.XtandemParameters; import com.compomics.util.experiment.massspectrometry.Charge; import com.compomics.util.experiment.identification.identification_parameters.PtmSettings; import com.compomics.util.experiment.identification.identification_parameters.tool_specific.NovorParameters; import com.compomics.util.experiment.identification.protein_inference.PeptideMapperType; import com.compomics.util.experiment.identification.ptm.PtmScore; import com.compomics.util.experiment.identification.spectrum_annotation.AnnotationSettings; import com.compomics.util.experiment.identification.spectrum_annotation.SpectrumAnnotator; import com.compomics.util.experiment.massspectrometry.FragmentationMethod; import com.compomics.util.preferences.DigestionPreferences; import com.compomics.util.preferences.DigestionPreferences.Specificity; import com.compomics.util.preferences.FractionSettings; import com.compomics.util.preferences.GenePreferences; import com.compomics.util.preferences.IdMatchValidationPreferences; import com.compomics.util.preferences.IdentificationParameters; import com.compomics.util.preferences.PTMScoringPreferences; import com.compomics.util.preferences.ProteinInferencePreferences; import com.compomics.util.preferences.SequenceMatchingPreferences; import java.io.File; import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; import java.util.Arrays; import java.util.List; import org.apache.commons.cli.CommandLine; /** * This class parses the parameters from a command line and stores them * in a SearchParameters object. * * @author Marc Vaudel * @author Harald Barsnes */ public class IdentificationParametersInputBean { /** * Verifies the command line start parameters. * * @param aLine the command line to validate * @param checkMandatoryParameters if true, check if mandatory parameters * are included * * @return true if the startup was valid */ public static boolean isValidStartup(CommandLine aLine, boolean checkMandatoryParameters) { if (aLine.getOptions().length == 0) { return false; } if (aLine.hasOption(IdentificationParametersCLIParams.MODS.id)) { return true; } if (aLine.hasOption(IdentificationParametersCLIParams.ENZYMES.id)) { return true; } if (aLine.hasOption(IdentificationParametersCLIParams.PREC_PPM.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PREC_PPM.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.PREC_PPM.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.FRAG_PPM.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.FRAG_PPM.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.FRAG_PPM.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PREC_TOL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PREC_TOL.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.PREC_TOL.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.FRAG_TOL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.FRAG_TOL.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.FRAG_TOL.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.FI.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.FI.id); ArrayList<String> possibleValues = new ArrayList<String>(3); possibleValues.add(PeptideFragmentIon.getSubTypeAsString(PeptideFragmentIon.A_ION)); possibleValues.add(PeptideFragmentIon.getSubTypeAsString(PeptideFragmentIon.B_ION)); possibleValues.add(PeptideFragmentIon.getSubTypeAsString(PeptideFragmentIon.C_ION)); if (!CommandParameter.isInList(IdentificationParametersCLIParams.FI.id, arg, possibleValues)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.RI.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.RI.id); ArrayList<String> possibleValues = new ArrayList<String>(3); possibleValues.add(PeptideFragmentIon.getSubTypeAsString(PeptideFragmentIon.X_ION)); possibleValues.add(PeptideFragmentIon.getSubTypeAsString(PeptideFragmentIon.Y_ION)); possibleValues.add(PeptideFragmentIon.getSubTypeAsString(PeptideFragmentIon.Z_ION)); if (!CommandParameter.isInList(IdentificationParametersCLIParams.RI.id, arg, possibleValues)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIGESTION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIGESTION.id); ArrayList<String> possibleValues = new ArrayList<String>(Specificity.values().length); for (DigestionPreferences.CleavagePreference cleavagePreference : DigestionPreferences.CleavagePreference.values()) { possibleValues.add(cleavagePreference.index + ""); } if (!CommandParameter.isInList(IdentificationParametersCLIParams.DIGESTION.id, arg, possibleValues)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ENZYME.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ENZYME.id); ArrayList<String> enzymes = CommandLineUtils.splitInput(arg); for (String enzymeName : enzymes) { Enzyme enzyme = EnzymeFactory.getInstance().getEnzyme(enzymeName); if (enzyme == null) { System.out.println(System.getProperty("line.separator") + "Enzyme " + arg + " not recognized. Please add enzyme using the EnzymeCLI command." + System.getProperty("line.separator")); return false; } } } if (aLine.hasOption(IdentificationParametersCLIParams.MC.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MC.id); ArrayList<String> mcsAsString = CommandLineUtils.splitInput(arg); for (String mcAsString : mcsAsString) { if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MC.id, mcAsString, true)) { return false; } } } if (aLine.hasOption(IdentificationParametersCLIParams.SPECIFICITY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SPECIFICITY.id); ArrayList<String> possibleValues = new ArrayList<String>(Specificity.values().length); for (Specificity specificity : Specificity.values()) { possibleValues.add(specificity.index + ""); } if (!CommandParameter.isInList(IdentificationParametersCLIParams.SPECIFICITY.id, arg, possibleValues)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.IDENTIFICATION_PARAMETERS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.IDENTIFICATION_PARAMETERS.id); if (arg.equals("")) { System.out.println(System.getProperty("line.separator") + "No input file specified!" + System.getProperty("line.separator")); return false; } File fileIn = new File(arg); try { IdentificationParameters.getIdentificationParameters(fileIn); } catch (Exception e) { System.out.println(System.getProperty("line.separator") + "An error occurred while importing the parameters file " + fileIn + " (see below)." + System.getProperty("line.separator")); e.printStackTrace(); return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OUT.id)) { if (aLine.getOptionValue(IdentificationParametersCLIParams.OUT.id).equals("")) { System.out.println(System.getProperty("line.separator") + "No output file specified!" + System.getProperty("line.separator")); return false; } } else if (checkMandatoryParameters) { System.out.println(System.getProperty("line.separator") + "No output file specified!" + System.getProperty("line.separator")); return false; } if (aLine.hasOption(IdentificationParametersCLIParams.DB.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DB.id); File fastaFile = new File(arg); if (!fastaFile.exists()) { System.out.println(System.getProperty("line.separator") + "Database not found." + System.getProperty("line.separator")); return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MIN_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MIN_CHARGE.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MIN_CHARGE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MAX_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MAX_CHARGE.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MAX_CHARGE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MIN_ISOTOPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MIN_ISOTOPE.id); if (!CommandParameter.isInteger(IdentificationParametersCLIParams.MIN_ISOTOPE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MAX_ISOTOPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MAX_ISOTOPE.id); if (!CommandParameter.isInteger(IdentificationParametersCLIParams.MAX_ISOTOPE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_REMOVE_PREC.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_REMOVE_PREC.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_REMOVE_PREC.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_SCALE_PREC.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SCALE_PREC.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_SCALE_PREC.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_ESTIMATE_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ESTIMATE_CHARGE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_ESTIMATE_CHARGE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_EVALUE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_EVALUE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_MAX_EVALUE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH_CHARGE.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH_CHARGE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MIN_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MAX_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_FORMAT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_FORMAT.id); List<String> supportedInput = Arrays.asList("0", "1", "2"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.OMSSA_FORMAT.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_SEQUENCES_IN_MEMORY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SEQUENCES_IN_MEMORY.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_SEQUENCES_IN_MEMORY.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_NEUTRON.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_NEUTRON.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_NEUTRON.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_LOW_INTENSITY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_LOW_INTENSITY.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_LOW_INTENSITY.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_HIGH_INTENSITY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_HIGH_INTENSITY.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_HIGH_INTENSITY.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_INTENSITY_INCREMENT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_INTENSITY_INCREMENT.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_INTENSITY_INCREMENT.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_WIDTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_WIDTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_WIDTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_WIDTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_WIDTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_WIDTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_INTENSE_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_INTENSE_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_INTENSE_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MIN_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_METHIONINE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_METHIONINE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_METHIONINE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_LADDERS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_LADDERS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MAX_LADDERS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_CHARGE.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_CHARGE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_FRACTION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_FRACTION.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_MAX_FRACTION.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_PLUS_ONE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_PLUS_ONE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_PLUS_ONE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_POSITIVE_IONS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_POSITIVE_IONS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_POSITIVE_IONS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_PREC_PER_SPECTRUM.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_PREC_PER_SPECTRUM.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_PREC_PER_SPECTRUM.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_FORWARD_IONS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_FORWARD_IONS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_FORWARD_IONS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_REWIND_IONS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_REWIND_IONS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_REWIND_IONS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_SERIES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_SERIES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_SERIES.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_CORRELATION_CORRECTION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_CORRELATION_CORRECTION.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.OMSSA_CORRELATION_CORRECTION.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_CONSECUTIVE_ION_PROBABILITY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_CONSECUTIVE_ION_PROBABILITY.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_CONSECUTIVE_ION_PROBABILITY.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SEQUENCE_EVALUE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SEQUENCE_EVALUE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SEQUENCE_EVALUE.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SPECTRUM_EVALUE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SPECTRUM_EVALUE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SPECTRUM_EVALUE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.OMSSA_ITERATIVE_REPLACE_EVALUE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ITERATIVE_REPLACE_EVALUE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.OMSSA_ITERATIVE_REPLACE_EVALUE.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_DYNAMIC_RANGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_DYNAMIC_RANGE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.XTANDEM_DYNAMIC_RANGE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_NPEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_NPEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.XTANDEM_NPEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_MIN_FRAG_MZ.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_MIN_FRAG_MZ.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.XTANDEM_MIN_FRAG_MZ.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_MIN_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_MIN_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.XTANDEM_MIN_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_NOISE_SUPPRESSION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_NOISE_SUPPRESSION.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_NOISE_SUPPRESSION.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_MIN_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_MIN_PREC_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.XTANDEM_MIN_PREC_MASS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_QUICK_ACETYL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_QUICK_ACETYL.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_QUICK_ACETYL.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_QUICK_PYRO.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_QUICK_PYRO.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_QUICK_PYRO.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_STP_BIAS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_STP_BIAS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_STP_BIAS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_REFINE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_EVALUE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_EVALUE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.XTANDEM_REFINE_EVALUE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_UNANTICIPATED_CLEAVAGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_UNANTICIPATED_CLEAVAGE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_REFINE_UNANTICIPATED_CLEAVAGE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_SEMI.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_SEMI.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_REFINE_SEMI.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_POTENTIAL_MOD_FULL_REFINEMENT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_POTENTIAL_MOD_FULL_REFINEMENT.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_REFINE_POTENTIAL_MOD_FULL_REFINEMENT.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_POINT_MUTATIONS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_POINT_MUTATIONS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_REFINE_POINT_MUTATIONS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_SNAPS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_SNAPS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_REFINE_SNAPS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_SPECTRUM_SYNTHESIS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_SPECTRUM_SYNTHESIS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_REFINE_SPECTRUM_SYNTHESIS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_EVALUE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_EVALUE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.XTANDEM_EVALUE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_RESULTS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_RESULTS.id); List<String> supportedInput = Arrays.asList("all", "valid", "stochastic"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.XTANDEM_OUTPUT_RESULTS.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_PROTEINS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_PROTEINS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_OUTPUT_PROTEINS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SEQUENCES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SEQUENCES.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SEQUENCES.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SPECTRA.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SPECTRA.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SPECTRA.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_DECOY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_DECOY.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.MSGF_DECOY.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_INSTRUMENT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_INSTRUMENT.id); List<String> supportedInput = Arrays.asList("0", "1", "2", "3"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.MSGF_INSTRUMENT.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_FRAGMENTATION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_FRAGMENTATION.id); List<String> supportedInput = Arrays.asList("0", "1", "2", "3"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.MSGF_FRAGMENTATION.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_PROTOCOL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_PROTOCOL.id); List<String> supportedInput = Arrays.asList("0", "1", "2", "3", "4", "5"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.MSGF_PROTOCOL.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_MIN_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_MIN_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MSGF_MIN_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_MAX_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_MAX_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MSGF_MAX_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_NUM_MATCHES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_NUM_MATCHES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MSGF_NUM_MATCHES.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_ADDITIONAL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_ADDITIONAL.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.MSGF_ADDITIONAL.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_TERMINI.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_TERMINI.id); List<String> supportedInput = Arrays.asList("0", "1", "2"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.MSGF_TERMINI.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MSGF_PTMS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MSGF_PTMS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MSGF_PTMS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_DECOY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_DECOY.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.MS_AMANDA_DECOY.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_INSTRUMENT.id)) { } if (aLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_MAX_RANK.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_MAX_RANK.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MS_AMANDA_MAX_RANK.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_MONOISOTOPIC.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_MONOISOTOPIC.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.MS_AMANDA_MONOISOTOPIC.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_LOW_MEM_MODE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_LOW_MEM_MODE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.MS_AMANDA_LOW_MEM_MODE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MIN_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MIN_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MYRIMATCH_MIN_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MIN_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MIN_PREC_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.MYRIMATCH_MIN_PREC_MASS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MAX_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MAX_PREC_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.MYRIMATCH_MAX_PREC_MASS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_PTMS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_PTMS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MYRIMATCH_PTMS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_FRAGMENTATION.id)) { } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_TERMINI.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_TERMINI.id); List<String> supportedInput = Arrays.asList("0", "1", "2"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.MYRIMATCH_TERMINI.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_SMART_PLUS_THREE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_SMART_PLUS_THREE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.MYRIMATCH_SMART_PLUS_THREE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_XCORR.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_XCORR.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.MYRIMATCH_XCORR.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_TIC_CUTOFF.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_TIC_CUTOFF.id); if (!CommandParameter.inDoubleRange(IdentificationParametersCLIParams.MYRIMATCH_TIC_CUTOFF.id, arg, 0.0, 1.0)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_INTENSTITY_CLASSES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_INTENSTITY_CLASSES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MYRIMATCH_INTENSTITY_CLASSES.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_CLASS_MULTIPLIER.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_CLASS_MULTIPLIER.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MYRIMATCH_CLASS_MULTIPLIER.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_NUM_BATCHES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_NUM_BATCHES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MYRIMATCH_NUM_BATCHES.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEAK_COUNT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEAK_COUNT.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEAK_COUNT.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_OUTPUT_FORMAT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_OUTPUT_FORMAT.id); List<String> supportedInput = Arrays.asList("mzIdentML", "pepXML"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.MYRIMATCH_OUTPUT_FORMAT.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_NUM_MATCHES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_NUM_MATCHES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.COMET_NUM_MATCHES.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_PTMS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_PTMS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.COMET_PTMS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_REQ_PTMS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_REQ_PTMS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.COMET_REQ_PTMS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_MIN_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_MIN_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.COMET_MIN_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_MIN_PEAK_INTENSITY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_MIN_PEAK_INTENSITY.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.COMET_MIN_PEAK_INTENSITY.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR.id); List<String> supportedInput = Arrays.asList("0", "1", "2"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR_TOLERANCE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR_TOLERANCE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR_TOLERANCE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_LOWER.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_LOWER.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_LOWER.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_UPPER.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_UPPER.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_UPPER.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_ENZYME_TYPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_ENZYME_TYPE.id); List<String> supportedInput = Arrays.asList("1", "2", "8", "9"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.COMET_ENZYME_TYPE.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_ISOTOPE_CORRECTION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_ISOTOPE_CORRECTION.id); List<String> supportedInput = Arrays.asList("0", "1", "2"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.COMET_ISOTOPE_CORRECTION.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_MIN_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_MIN_PREC_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.COMET_MIN_PREC_MASS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_MAX_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_MAX_PREC_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.COMET_MAX_PREC_MASS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_MAX_FRAGMENT_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_MAX_FRAGMENT_CHARGE.id); if (!CommandParameter.inIntegerRange(IdentificationParametersCLIParams.COMET_MAX_FRAGMENT_CHARGE.id, arg, 1, 5)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_REMOVE_METH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_REMOVE_METH.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.COMET_REMOVE_METH.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_BATCH_SIZE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_BATCH_SIZE.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.COMET_BATCH_SIZE.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_THEORETICAL_FRAGMENT_IONS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_THEORETICAL_FRAGMENT_IONS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.COMET_THEORETICAL_FRAGMENT_IONS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_FRAGMENT_BIN_OFFSET.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_FRAGMENT_BIN_OFFSET.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.COMET_FRAGMENT_BIN_OFFSET.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.COMET_OUTPUT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.COMET_OUTPUT.id); List<String> supportedInput = new ArrayList<String>(); for (CometParameters.CometOutputFormat format : CometParameters.CometOutputFormat.values()) { supportedInput.add(format.toString()); } if (!CommandParameter.isInList(IdentificationParametersCLIParams.COMET_OUTPUT.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_PTMS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PTMS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_PTMS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_PTMS_PER_TYPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PTMS_PER_TYPE.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_PTMS_PER_TYPE.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_MIN_PEP_LENGTH.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_MAX_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_PREC_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.TIDE_MIN_PREC_MASS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_PREC_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.TIDE_MAX_PREC_MASS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_DECOY_FORMAT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_DECOY_FORMAT.id); List<String> supportedInput = Arrays.asList("none", "shuffle", "peptide-reverse", "protein-reverse"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.TIDE_DECOY_FORMAT.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_KEEP_TERM_AA.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_KEEP_TERM_AA.id); List<String> supportedInput = Arrays.asList("N", "C", "NC"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.TIDE_KEEP_TERM_AA.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_DECOY_SEED.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_DECOY_SEED.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_DECOY_SEED.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_OUTPUT_FOLDER.id)) { } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_PRINT_PEPTIDES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PRINT_PEPTIDES.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_PRINT_PEPTIDES.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_VERBOSITY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_VERBOSITY.id); List<String> supportedInput = Arrays.asList("0", "10", "20", "30", "40", "50", "60"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.TIDE_VERBOSITY.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MONOISOTOPIC.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MONOISOTOPIC.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_MONOISOTOPIC.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_CLIP_N_TERM.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_CLIP_N_TERM.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_CLIP_N_TERM.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_DIGESTION_TYPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_DIGESTION_TYPE.id); List<String> supportedInput = Arrays.asList("full-digest", "partial-digest"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.TIDE_DIGESTION_TYPE.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_COMPUTE_SP.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_COMPUTE_SP.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_COMPUTE_SP.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_PSMS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_PSMS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_MAX_PSMS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_COMPUTE_P.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_COMPUTE_P.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_COMPUTE_P.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_MZ.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_MZ.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_MZ.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_SPECTRUM_MZ.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_SPECTRUM_MZ.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.TIDE_MAX_SPECTRUM_MZ.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_PEAKS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_SPECTRUM_CHARGES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_SPECTRUM_CHARGES.id); List<String> supportedInput = Arrays.asList("1", "2", "3", "all"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.TIDE_SPECTRUM_CHARGES.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_REMOVE_PREC.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_REMOVE_PREC.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_REMOVE_PREC.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_REMOVE_PREC_TOL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_REMOVE_PREC_TOL.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.TIDE_REMOVE_PREC_TOL.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_PROGRESS_INDICATOR.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PROGRESS_INDICATOR.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.TIDE_PROGRESS_INDICATOR.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_USE_FLANKING.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_USE_FLANKING.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_USE_FLANKING.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_USE_NEUTRAL_LOSSES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_USE_NEUTRAL_LOSSES.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_USE_NEUTRAL_LOSSES.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MZ_BIN_WIDTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MZ_BIN_WIDTH.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.TIDE_MZ_BIN_WIDTH.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_MZ_BIN_OFFSET.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MZ_BIN_OFFSET.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.TIDE_MZ_BIN_OFFSET.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_CONCAT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_CONCAT.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_CONCAT.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_STORE_SPECTRA.id)) { } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_TEXT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_TEXT.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_EXPORT_TEXT.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_SQT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_SQT.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_EXPORT_SQT.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_PEPXML.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_PEPXML.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_EXPORT_PEPXML.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_MZID.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_MZID.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_EXPORT_MZID.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_PIN.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_PIN.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_EXPORT_PIN.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.TIDE_REMOVE_TEMP.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.TIDE_REMOVE_TEMP.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.TIDE_REMOVE_TEMP.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEPTIDE_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEPTIDE_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEPTIDE_MASS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_COMBINATIONS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_COMBINATIONS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.ANDROMEDA_MAX_COMBINATIONS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS_WINDOW.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS_WINDOW.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS_WINDOW.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_INCL_WATER.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_INCL_WATER.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANDROMEDA_INCL_WATER.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_INCL_AMMONIA.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_INCL_AMMONIA.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANDROMEDA_INCL_AMMONIA.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_NEUTRAL_LOSSES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_NEUTRAL_LOSSES.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANDROMEDA_NEUTRAL_LOSSES.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_FRAGMENT_ALL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_FRAGMENT_ALL.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANDROMEDA_FRAGMENT_ALL.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_EMP_CORRECTION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_EMP_CORRECTION.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANDROMEDA_EMP_CORRECTION.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_HIGHER_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_HIGHER_CHARGE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANDROMEDA_HIGHER_CHARGE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_FRAG_METHOD.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_FRAG_METHOD.id); List<String> supportedInput = Arrays.asList("HCD", "CID", "ETD"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.ANDROMEDA_FRAG_METHOD.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_MODS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_MODS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.ANDROMEDA_MAX_MODS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MIN_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MIN_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.ANDROMEDA_MIN_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEP_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEP_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEP_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_EQUAL_IL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_EQUAL_IL.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANDROMEDA_EQUAL_IL.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_PSMS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_PSMS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.ANDROMEDA_MAX_PSMS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_DECOY_MODE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_DECOY_MODE.id); List<String> supportedInput = new ArrayList<String>(); for (AndromedaParameters.AndromedaDecoyMode decoyMode : AndromedaParameters.AndromedaDecoyMode.values()) { supportedInput.add(decoyMode.toString()); } if (!CommandParameter.isInList(IdentificationParametersCLIParams.ANDROMEDA_DECOY_MODE.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_HITLIST_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_HITLIST_LENGTH.id); if (!CommandParameter.inIntegerRange(IdentificationParametersCLIParams.PEPNOVO_HITLIST_LENGTH.id, arg, 1, 20)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PEPTNOVO_ESTIMATE_CHARGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PEPTNOVO_ESTIMATE_CHARGE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.PEPTNOVO_ESTIMATE_CHARGE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_CORRECT_PREC_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_CORRECT_PREC_MASS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.PEPNOVO_CORRECT_PREC_MASS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_DISCARD_SPECTRA.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_DISCARD_SPECTRA.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.PEPNOVO_DISCARD_SPECTRA.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_FRAGMENTATION_MODEL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_FRAGMENTATION_MODEL.id); List<String> supportedInput = Arrays.asList("CID_IT_TRYP"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.PEPNOVO_FRAGMENTATION_MODEL.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_GENERATE_BLAST.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_GENERATE_BLAST.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.PEPNOVO_GENERATE_BLAST.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_TIC_CUTOFF_PERCENTAGE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_TIC_CUTOFF_PERCENTAGE.id); if (!CommandParameter.inIntegerRange(IdentificationParametersCLIParams.DIRECTAG_TIC_CUTOFF_PERCENTAGE.id, arg, 0, 100)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_PEAK_COUNT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_PEAK_COUNT.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.DIRECTAG_MAX_PEAK_COUNT.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_NUM_INTENSITY_CLASSES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_NUM_INTENSITY_CLASSES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.DIRECTAG_NUM_INTENSITY_CLASSES.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_ADJUST_PRECURSOR_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_ADJUST_PRECURSOR_MASS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.DIRECTAG_ADJUST_PRECURSOR_MASS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MIN_PRECUSOR_ADJUSTMENT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MIN_PRECUSOR_ADJUSTMENT.id); if (!CommandParameter.isDouble(IdentificationParametersCLIParams.DIRECTAG_MIN_PRECUSOR_ADJUSTMENT.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_PRECUSOR_ADJUSTMENT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_PRECUSOR_ADJUSTMENT.id); if (!CommandParameter.isDouble(IdentificationParametersCLIParams.DIRECTAG_MAX_PRECUSOR_ADJUSTMENT.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_PRECUSOR_ADJUSTMENT_STEP.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_PRECUSOR_ADJUSTMENT_STEP.id); if (!CommandParameter.isDouble(IdentificationParametersCLIParams.DIRECTAG_PRECUSOR_ADJUSTMENT_STEP.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_NUM_CHARGE_STATES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_NUM_CHARGE_STATES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.DIRECTAG_NUM_CHARGE_STATES.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_OUTPUT_SUFFIX.id)) { } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_USE_CHARGE_STATE_FROM_MS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_USE_CHARGE_STATE_FROM_MS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.DIRECTAG_USE_CHARGE_STATE_FROM_MS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_DUPLICATE_SPECTRA.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_DUPLICATE_SPECTRA.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.DIRECTAG_DUPLICATE_SPECTRA.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_DEISOTOPING_MODE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_DEISOTOPING_MODE.id); List<String> supportedInput = Arrays.asList("0", "1", "2"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.DIRECTAG_DEISOTOPING_MODE.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_ISOTOPE_MZ_TOLERANCE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_ISOTOPE_MZ_TOLERANCE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.DIRECTAG_ISOTOPE_MZ_TOLERANCE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_MZ_TOLERANCE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_MZ_TOLERANCE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_MZ_TOLERANCE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_TAG_LENGTH.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_TAG_LENGTH.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.DIRECTAG_TAG_LENGTH.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_DYNAMIC_MODS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_DYNAMIC_MODS.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.DIRECTAG_MAX_DYNAMIC_MODS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_TAG_COUNT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_TAG_COUNT.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.DIRECTAG_MAX_TAG_COUNT.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_INTENSITY_SCORE_WEIGHT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_INTENSITY_SCORE_WEIGHT.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.DIRECTAG_INTENSITY_SCORE_WEIGHT.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MZ_FIDELITY_SCORE_WEIGHT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MZ_FIDELITY_SCORE_WEIGHT.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.DIRECTAG_MZ_FIDELITY_SCORE_WEIGHT.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_SCORE_WEIGHT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_SCORE_WEIGHT.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_SCORE_WEIGHT.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PNOVO_NUMBER_OF_PEPTIDES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_NUMBER_OF_PEPTIDES.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.PNOVO_NUMBER_OF_PEPTIDES.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PNOVO_LOWER_PRECURSOR_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_LOWER_PRECURSOR_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.PNOVO_LOWER_PRECURSOR_MASS.id, arg, true)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PNOVO_UPPER_PRECURSOR_MASS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_UPPER_PRECURSOR_MASS.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.PNOVO_UPPER_PRECURSOR_MASS.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PNOVO_ACTIVATION_TYPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_ACTIVATION_TYPE.id); List<String> supportedInput = Arrays.asList("HCD", "CID", "ETD"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.PNOVO_ACTIVATION_TYPE.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.NOVOR_FRAGMENTATION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.NOVOR_FRAGMENTATION.id); List<String> supportedInput = Arrays.asList("HCD", "CID"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.NOVOR_FRAGMENTATION.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.NOVOR_MASS_ANALYZER.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.NOVOR_MASS_ANALYZER.id); List<String> supportedInput = Arrays.asList("Trap", "TOF", "FT"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.NOVOR_MASS_ANALYZER.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANNOTATION_LEVEL.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANNOTATION_LEVEL.id); if (!CommandParameter.inDoubleRange(IdentificationParametersCLIParams.ANNOTATION_LEVEL.id, arg, 0.0, 1.0)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANNOTATION_MZ_TOLERANCE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANNOTATION_MZ_TOLERANCE.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.ANNOTATION_MZ_TOLERANCE.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.ANNOTATION_HIGH_RESOLUTION.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.ANNOTATION_HIGH_RESOLUTION.id); if (CommandParameter.isBooleanInput(IdentificationParametersCLIParams.ANNOTATION_HIGH_RESOLUTION.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SEQUENCE_MATCHING_TYPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SEQUENCE_MATCHING_TYPE.id); if (!CommandParameter.isSequenceMatchingType(IdentificationParametersCLIParams.SEQUENCE_MATCHING_TYPE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SEQUENCE_MATCHING_X.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SEQUENCE_MATCHING_X.id); if (!CommandParameter.inDoubleRange(IdentificationParametersCLIParams.SEQUENCE_MATCHING_X.id, arg, 0.0, 1.0)) { return false; } } Integer min = null; if (aLine.hasOption(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MIN.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MIN.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MIN.id, arg, false)) { return false; } min = new Integer(arg); } Integer max = null; if (aLine.hasOption(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MAX.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MAX.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MAX.id, arg, false)) { return false; } max = new Integer(arg); } if (min != null && max != null && max <= min) { System.out.println(System.getProperty("line.separator") + IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MAX.id + " <= " + IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MIN.id + System.getProperty("line.separator")); return false; } min = null; if (aLine.hasOption(IdentificationParametersCLIParams.IMPORT_MC_MIN.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_MC_MIN.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.IMPORT_MC_MIN.id, arg, true)) { return false; } min = new Integer(arg); } max = null; if (aLine.hasOption(IdentificationParametersCLIParams.IMPORT_MC_MAX.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_MC_MAX.id); if (!CommandParameter.isPositiveInteger(IdentificationParametersCLIParams.IMPORT_MC_MAX.id, arg, false)) { return false; } max = new Integer(arg); } if (min != null && max != null && max < min) { System.out.println(System.getProperty("line.separator") + IdentificationParametersCLIParams.IMPORT_MC_MAX.id + " < " + IdentificationParametersCLIParams.IMPORT_MC_MIN.id + System.getProperty("line.separator")); return false; } if (aLine.hasOption(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ_PPM.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ_PPM.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ_PPM.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.EXCLUDE_UNKNOWN_PTMs.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.EXCLUDE_UNKNOWN_PTMs.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.EXCLUDE_UNKNOWN_PTMs.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PTM_SCORE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PTM_SCORE.id); try { int scoreId = new Integer(arg); PtmScore.getScore(scoreId); } catch (Exception e) { System.out.println(System.getProperty("line.separator") + "Error when parsing " + IdentificationParametersCLIParams.PTM_SCORE.id + ". Option found: " + arg + "." + System.getProperty("line.separator")); return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PTM_THRESHOLD.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PTM_THRESHOLD.id); if (!CommandParameter.isPositiveDouble(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ.id, arg, false)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SCORE_NEUTRAL_LOSSES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SCORE_NEUTRAL_LOSSES.id); List<String> supportedInput = Arrays.asList("0", "1"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.SCORE_NEUTRAL_LOSSES.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PTM_SEQUENCE_MATCHING_TYPE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PTM_SEQUENCE_MATCHING_TYPE.id); if (!CommandParameter.isSequenceMatchingType(IdentificationParametersCLIParams.PTM_SEQUENCE_MATCHING_TYPE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PTM_ALIGNMENT.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PTM_ALIGNMENT.id); List<String> supportedInput = Arrays.asList("0", "1"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.PTM_ALIGNMENT.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.DB_PI.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.DB_PI.id); File fastaFile = new File(arg); if (!fastaFile.exists()) { System.out.println(System.getProperty("line.separator") + "Protein inference database not found." + System.getProperty("line.separator")); return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.SIMPLIFY_GOUPS.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_SCORE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_SCORE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_SCORE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_ENZYMATICITY.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_ENZYMATICITY.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_ENZYMATICITY.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_EVIDENCE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_EVIDENCE.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_EVIDENCE.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_UNCHARACTERIZED.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_UNCHARACTERIZED.id); if (!CommandParameter.isBooleanInput(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_UNCHARACTERIZED.id, arg)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PSM_FDR.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PSM_FDR.id); if (!CommandParameter.inDoubleRange(IdentificationParametersCLIParams.PSM_FDR.id, arg, 0.0, 100.0)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PEPTIDE_FDR.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PEPTIDE_FDR.id); if (!CommandParameter.inDoubleRange(IdentificationParametersCLIParams.PSM_FDR.id, arg, 0.0, 100.0)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PROTEIN_FDR.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PROTEIN_FDR.id); if (!CommandParameter.inDoubleRange(IdentificationParametersCLIParams.PSM_FDR.id, arg, 0.0, 100.0)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SEPARATE_PSMs.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SEPARATE_PSMs.id); List<String> supportedInput = Arrays.asList("0", "1"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.SEPARATE_PSMs.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.SEPARATE_PEPTIDES.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.SEPARATE_PEPTIDES.id); List<String> supportedInput = Arrays.asList("0", "1"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.SEPARATE_PSMs.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.MERGE_SUBGROUPS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.MERGE_SUBGROUPS.id); List<String> supportedInput = Arrays.asList("0", "1"); if (!CommandParameter.isInList(IdentificationParametersCLIParams.MERGE_SUBGROUPS.id, arg, supportedInput)) { return false; } } if (aLine.hasOption(IdentificationParametersCLIParams.PROTEIN_FRACTION_MW_CONFIDENCE.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.PROTEIN_FRACTION_MW_CONFIDENCE.id); if (!CommandParameter.inDoubleRange(IdentificationParametersCLIParams.PROTEIN_FRACTION_MW_CONFIDENCE.id, arg, 0.0, 100.0)) { return false; } } return true; } /** * The identification parameters. */ private IdentificationParameters identificationParameters; /** * An input file. */ private File inputFile; /** * The file where to save the parameters. */ private File destinationFile; /** * If true the modifications will be printed. */ private Boolean listMods = false; /** * If true the enzymes will be printed. */ private Boolean listEnzymes = false; /** * The compomics PTM factory. */ private PTMFactory ptmFactory = PTMFactory.getInstance(); /** * The enzyme factory. */ private EnzymeFactory enzymeFactory = EnzymeFactory.getInstance(); /** * The command line. */ private CommandLine commandLine; /** * Takes all the arguments from a command line. * * @param aLine the command line * * @throws IOException if an IOException occurs * @throws ClassNotFoundException if aClassNotFoundException * ClassNotFoundException occurs */ public IdentificationParametersInputBean(CommandLine aLine) throws IOException, ClassNotFoundException { this.commandLine = aLine; /////////////////////////////////// // General parameters /////////////////////////////////// if (commandLine.hasOption(IdentificationParametersCLIParams.MODS.id)) { listMods = true; } if (commandLine.hasOption(IdentificationParametersCLIParams.ENZYMES.id)) { listEnzymes = true; } if (commandLine.hasOption(IdentificationParametersCLIParams.IDENTIFICATION_PARAMETERS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.IDENTIFICATION_PARAMETERS.id); inputFile = new File(arg); identificationParameters = IdentificationParameters.getIdentificationParameters(inputFile); } if (commandLine.hasOption(IdentificationParametersCLIParams.OUT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OUT.id); if (!arg.endsWith(".par")) { arg += ".par"; } destinationFile = new File(arg); } updateIdentificationParameters(); } /** * Updates the identification parameters according to the command line. * * @throws FileNotFoundException if a FileNotFoundException occurs * @throws IOException if an IOException occurs * @throws ClassNotFoundException if aClassNotFoundException * ClassNotFoundException occurs */ public void updateIdentificationParameters() throws FileNotFoundException, IOException, ClassNotFoundException { /////////////////////////////////// // General search parameters /////////////////////////////////// SearchParameters searchParameters = null; if (identificationParameters != null) { searchParameters = identificationParameters.getSearchParameters(); } if (searchParameters == null) { searchParameters = new SearchParameters(); } if (commandLine.hasOption(IdentificationParametersCLIParams.PREC_PPM.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PREC_PPM.id); Integer option = new Integer(arg); switch (option) { case 1: searchParameters.setPrecursorAccuracyType(SearchParameters.MassAccuracyType.PPM); break; case 0: searchParameters.setPrecursorAccuracyType(SearchParameters.MassAccuracyType.DA); break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.PREC_PPM.id + ": " + arg + ". 0 or 1 expected."); } } if (commandLine.hasOption(IdentificationParametersCLIParams.FRAG_PPM.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.FRAG_PPM.id); Integer option = new Integer(arg); if (option == 1) { searchParameters.setFragmentAccuracyType(SearchParameters.MassAccuracyType.PPM); } else { searchParameters.setFragmentAccuracyType(SearchParameters.MassAccuracyType.DA); } } if (commandLine.hasOption(IdentificationParametersCLIParams.PREC_TOL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PREC_TOL.id); Double option = new Double(arg); searchParameters.setPrecursorAccuracy(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.FRAG_TOL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.FRAG_TOL.id); Double option = new Double(arg); searchParameters.setFragmentIonAccuracy(option); } DigestionPreferences digestionPreferences = searchParameters.getDigestionPreferences(); if (digestionPreferences == null) { digestionPreferences = DigestionPreferences.getDefaultPreferences(); searchParameters.setDigestionPreferences(digestionPreferences); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIGESTION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIGESTION.id); Integer option = new Integer(arg); DigestionPreferences.CleavagePreference cleavagePreference = DigestionPreferences.CleavagePreference.getCleavagePreferences(option); if (digestionPreferences.getCleavagePreference() != null && digestionPreferences.getCleavagePreference() != cleavagePreference) { digestionPreferences.clear(); } digestionPreferences.setCleavagePreference(cleavagePreference); } if (commandLine.hasOption(IdentificationParametersCLIParams.ENZYME.id)) { if (digestionPreferences.hasEnzymes()) { digestionPreferences.clearEnzymes(); } String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ENZYME.id); ArrayList<String> enzymes = CommandLineUtils.splitInput(arg); ArrayList<Integer> mcs = null; ArrayList<Specificity> specificities = null; if (commandLine.hasOption(IdentificationParametersCLIParams.MC.id)) { arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MC.id); ArrayList<String> args = CommandLineUtils.splitInput(arg); mcs = new ArrayList<Integer>(args.size()); for (String stringValue : args) { mcs.add(new Integer(stringValue)); } } if (commandLine.hasOption(IdentificationParametersCLIParams.SPECIFICITY.id)) { arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SPECIFICITY.id); ArrayList<String> args = CommandLineUtils.splitInput(arg); specificities = new ArrayList<Specificity>(args.size()); for (String stringValue : args) { specificities.add(Specificity.getSpecificity(new Integer(stringValue))); } } for (int i = 0; i < enzymes.size(); i++) { String enzymeName = enzymes.get(i); Enzyme enzyme = enzymeFactory.getEnzyme(enzymeName); digestionPreferences.addEnzyme(enzyme); Integer mc; if (mcs != null) { mc = mcs.get(i); } else { mc = 2; } digestionPreferences.setnMissedCleavages(enzymeName, mc); Specificity specificity; if (specificities != null) { specificity = specificities.get(i); } else { specificity = Specificity.specific; } digestionPreferences.setSpecificity(enzymeName, specificity); } } else if (digestionPreferences.getCleavagePreference() == DigestionPreferences.CleavagePreference.enzyme && !digestionPreferences.hasEnzymes()) { String enzymeName = "Trypsin"; Enzyme enzyme = enzymeFactory.getEnzyme(enzymeName); digestionPreferences.addEnzyme(enzyme); digestionPreferences.setnMissedCleavages(enzymeName, 2); digestionPreferences.setSpecificity(enzymeName, Specificity.specific); } if (commandLine.hasOption(IdentificationParametersCLIParams.DB.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DB.id); File fastaFile = new File(arg); searchParameters.setFastaFile(fastaFile); // also update the protein inference database if that option is not set if (identificationParameters != null && !commandLine.hasOption(IdentificationParametersCLIParams.DB_PI.id)) { ProteinInferencePreferences proteinInferencePreferences = identificationParameters.getProteinInferencePreferences(); proteinInferencePreferences.setProteinSequenceDatabase(fastaFile); } } if (commandLine.hasOption(IdentificationParametersCLIParams.FI.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.FI.id); ArrayList<String> args = CommandLineUtils.splitInput(arg); ArrayList<Integer> ions = new ArrayList<Integer>(args.size()); for (String ionName : args) { ions.add(PeptideFragmentIon.getIonType(ionName)); } searchParameters.setForwardIons(ions); } if (commandLine.hasOption(IdentificationParametersCLIParams.RI.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.RI.id); ArrayList<String> args = CommandLineUtils.splitInput(arg); ArrayList<Integer> ions = new ArrayList<Integer>(args.size()); for (String ionName : args) { ions.add(PeptideFragmentIon.getIonType(ionName)); } searchParameters.setRewindIons(ions); } if (commandLine.hasOption(IdentificationParametersCLIParams.MIN_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MIN_CHARGE.id); Integer option = new Integer(arg); searchParameters.setMinChargeSearched(new Charge(Charge.PLUS, option)); } if (commandLine.hasOption(IdentificationParametersCLIParams.MAX_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MAX_CHARGE.id); Integer option = new Integer(arg); searchParameters.setMaxChargeSearched(new Charge(Charge.PLUS, option)); } PtmSettings ptmSettings = searchParameters.getPtmSettings(); if (ptmSettings == null) { ptmSettings = new PtmSettings(); searchParameters.setPtmSettings(ptmSettings); } if (commandLine.hasOption(IdentificationParametersCLIParams.FIXED_MODS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.FIXED_MODS.id); ptmSettings.clearFixedModifications(); ArrayList<String> args = CommandLineUtils.splitInput(arg); for (String ptmName : args) { PTM modification = ptmFactory.getPTM(ptmName); ptmSettings.addFixedModification(modification); } } if (commandLine.hasOption(IdentificationParametersCLIParams.VARIABLE_MODS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.VARIABLE_MODS.id); ptmSettings.clearVariableModifications(); ArrayList<String> args = CommandLineUtils.splitInput(arg); for (String ptmName : args) { PTM modification = ptmFactory.getPTM(ptmName); ptmSettings.addVariableModification(modification); } } if (commandLine.hasOption(IdentificationParametersCLIParams.MIN_ISOTOPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MIN_ISOTOPE.id); Integer option = new Integer(arg); searchParameters.setMinIsotopicCorrection(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MAX_ISOTOPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MAX_ISOTOPE.id); Integer option = new Integer(arg); searchParameters.setMaxIsotopicCorrection(option); } /////////////////////////////////// // OMSSA parameters /////////////////////////////////// OmssaParameters omssaParameters; Integer algorithmIndex = Advocate.omssa.getIndex(); IdentificationAlgorithmParameter identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { omssaParameters = new OmssaParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, omssaParameters); } else { omssaParameters = (OmssaParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_REMOVE_PREC.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_REMOVE_PREC.id); Integer option = new Integer(arg); omssaParameters.setRemovePrecursor(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_SCALE_PREC.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SCALE_PREC.id); Integer option = new Integer(arg); omssaParameters.setScalePrecursor(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_ESTIMATE_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ESTIMATE_CHARGE.id); Integer option = new Integer(arg); omssaParameters.setEstimateCharge(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_EVALUE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_EVALUE.id); Double option = new Double(arg); omssaParameters.setMaxEValue(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH.id); Integer option = new Integer(arg); omssaParameters.setHitListLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_PEP_LENGTH.id); Integer option = new Integer(arg); omssaParameters.setMinPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_PEP_LENGTH.id); Integer option = new Integer(arg); omssaParameters.setMaxPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_FORMAT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_FORMAT.id); Integer option = new Integer(arg); omssaParameters.setSelectedOutput(OmssaParameters.getOmssaOutputTypes()[option]); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_SEQUENCES_IN_MEMORY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SEQUENCES_IN_MEMORY.id); Integer option = new Integer(arg); omssaParameters.setMemoryMappedSequenceLibraries(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_NEUTRON.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_NEUTRON.id); Double option = new Double(arg); omssaParameters.setNeutronThreshold(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_LOW_INTENSITY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_LOW_INTENSITY.id); Double option = new Double(arg); omssaParameters.setLowIntensityCutOff(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_HIGH_INTENSITY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_HIGH_INTENSITY.id); Double option = new Double(arg); omssaParameters.setHighIntensityCutOff(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_INTENSITY_INCREMENT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_INTENSITY_INCREMENT.id); Double option = new Double(arg); omssaParameters.setIntensityCutOffIncrement(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_WIDTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_WIDTH.id); Integer option = new Integer(arg); omssaParameters.setSingleChargeWindow(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_WIDTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_WIDTH.id); Integer option = new Integer(arg); omssaParameters.setDoubleChargeWindow(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_SINGLE_WINDOW_PEAKS.id); Integer option = new Integer(arg); omssaParameters.setnPeaksInSingleChargeWindow(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_DOUBLE_WINDOW_PEAKS.id); Integer option = new Integer(arg); omssaParameters.setnPeaksInDoubleChargeWindow(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_INTENSE_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_INTENSE_PEAKS.id); Integer option = new Integer(arg); omssaParameters.setnAnnotatedMostIntensePeaks(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_ANNOTATED_PEAKS.id); Integer option = new Integer(arg); omssaParameters.setMinAnnotatedPeaks(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MIN_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MIN_PEAKS.id); Integer option = new Integer(arg); omssaParameters.setMinPeaks(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_METHIONINE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_METHIONINE.id); Integer option = new Integer(arg); omssaParameters.setCleaveNterMethionine(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_LADDERS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_LADDERS.id); Integer option = new Integer(arg); omssaParameters.setMaxMzLadders(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_CHARGE.id); Integer option = new Integer(arg); omssaParameters.setMaxFragmentCharge(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_FRACTION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_FRACTION.id); Double option = new Double(arg); omssaParameters.setFractionOfPeaksForChargeEstimation(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_PLUS_ONE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_PLUS_ONE.id); Integer option = new Integer(arg); omssaParameters.setDetermineChargePlusOneAlgorithmically(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_POSITIVE_IONS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_POSITIVE_IONS.id); Integer option = new Integer(arg); omssaParameters.setSearchPositiveIons(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_PREC_PER_SPECTRUM.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_PREC_PER_SPECTRUM.id); Integer option = new Integer(arg); omssaParameters.setMinPrecPerSpectrum(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_FORWARD_IONS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_FORWARD_IONS.id); Integer option = new Integer(arg); omssaParameters.setSearchForwardFragmentFirst(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_REWIND_IONS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_REWIND_IONS.id); Integer option = new Integer(arg); omssaParameters.setSearchRewindFragments(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_SERIES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_MAX_FRAG_SERIES.id); Integer option = new Integer(arg); omssaParameters.setMaxFragmentPerSeries(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_CORRELATION_CORRECTION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_CORRELATION_CORRECTION.id); Integer option = new Integer(arg); omssaParameters.setUseCorrelationCorrectionScore(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_CONSECUTIVE_ION_PROBABILITY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_CONSECUTIVE_ION_PROBABILITY.id); Double option = new Double(arg); omssaParameters.setConsecutiveIonProbability(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SEQUENCE_EVALUE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SEQUENCE_EVALUE.id); Double option = new Double(arg); omssaParameters.setIterativeSequenceEvalue(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SPECTRUM_EVALUE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ITERATIVE_SPECTRUM_EVALUE.id); Double option = new Double(arg); omssaParameters.setIterativeSpectrumEvalue(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_ITERATIVE_REPLACE_EVALUE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_ITERATIVE_REPLACE_EVALUE.id); Double option = new Double(arg); omssaParameters.setIterativeReplaceEvalue(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.OMSSA_HITLIST_LENGTH_CHARGE.id); Integer option = new Integer(arg); omssaParameters.setMaxFragmentPerSeries(option); } /////////////////////////////////// // X!Tandem parameters /////////////////////////////////// XtandemParameters xtandemParameters; algorithmIndex = Advocate.xtandem.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { xtandemParameters = new XtandemParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, xtandemParameters); } else { xtandemParameters = (XtandemParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_DYNAMIC_RANGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_DYNAMIC_RANGE.id); Double option = new Double(arg); xtandemParameters.setDynamicRange(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_NPEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_NPEAKS.id); Integer option = new Integer(arg); xtandemParameters.setnPeaks(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_MIN_FRAG_MZ.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_MIN_FRAG_MZ.id); Double option = new Double(arg); xtandemParameters.setMinFragmentMz(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_MIN_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_MIN_PEAKS.id); Integer option = new Integer(arg); xtandemParameters.setMinPeaksPerSpectrum(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_NOISE_SUPPRESSION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_NOISE_SUPPRESSION.id); Integer option = new Integer(arg); xtandemParameters.setUseNoiseSuppression(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_MIN_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_MIN_PREC_MASS.id); Double option = new Double(arg); xtandemParameters.setMinPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_QUICK_ACETYL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_QUICK_ACETYL.id); Integer option = new Integer(arg); xtandemParameters.setProteinQuickAcetyl(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_QUICK_PYRO.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_QUICK_PYRO.id); Integer option = new Integer(arg); xtandemParameters.setQuickPyrolidone(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_STP_BIAS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_STP_BIAS.id); Integer option = new Integer(arg); xtandemParameters.setStpBias(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE.id); Integer option = new Integer(arg); xtandemParameters.setRefine(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_EVALUE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_EVALUE.id); Double option = new Double(arg); xtandemParameters.setMaximumExpectationValueRefinement(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_UNANTICIPATED_CLEAVAGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_UNANTICIPATED_CLEAVAGE.id); Integer option = new Integer(arg); xtandemParameters.setRefineUnanticipatedCleavages(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_SEMI.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_SEMI.id); Integer option = new Integer(arg); xtandemParameters.setRefineSemi(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_POTENTIAL_MOD_FULL_REFINEMENT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_POTENTIAL_MOD_FULL_REFINEMENT.id); Integer option = new Integer(arg); xtandemParameters.setPotentialModificationsForFullRefinment(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_POINT_MUTATIONS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_POINT_MUTATIONS.id); Integer option = new Integer(arg); xtandemParameters.setRefinePointMutations(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_SNAPS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_SNAPS.id); Integer option = new Integer(arg); xtandemParameters.setRefineSnaps(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_REFINE_SPECTRUM_SYNTHESIS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_REFINE_SPECTRUM_SYNTHESIS.id); Integer option = new Integer(arg); xtandemParameters.setRefineSpectrumSynthesis(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_EVALUE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_EVALUE.id); Double option = new Double(arg); xtandemParameters.setMaxEValue(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_RESULTS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_RESULTS.id); xtandemParameters.setOutputResults(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_PROTEINS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_PROTEINS.id); xtandemParameters.setOutputResults(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SEQUENCES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SEQUENCES.id); Integer option = new Integer(arg); xtandemParameters.setOutputSequences(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SPECTRA.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_OUTPUT_SPECTRA.id); Integer option = new Integer(arg); xtandemParameters.setOutputSpectra(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.XTANDEM_SKYLINE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.XTANDEM_SKYLINE.id); xtandemParameters.setSkylinePath(arg); } /////////////////////////////////// // MS-GF+ parameters /////////////////////////////////// MsgfParameters msgfParameters; algorithmIndex = Advocate.msgf.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { msgfParameters = new MsgfParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, msgfParameters); } else { msgfParameters = (MsgfParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_DECOY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_DECOY.id); Integer option = new Integer(arg); msgfParameters.setSearchDecoyDatabase(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_INSTRUMENT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_INSTRUMENT.id); Integer instrumentID = new Integer(arg); msgfParameters.setInstrumentID(instrumentID); // @TODO: check for valid index!! } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_FRAGMENTATION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_FRAGMENTATION.id); Integer option = new Integer(arg); msgfParameters.setFragmentationType(option); // @TODO: check for valid index!! } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_PROTOCOL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_PROTOCOL.id); Integer option = new Integer(arg); msgfParameters.setProtocol(option); // @TODO: check for valid index!! } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_MIN_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_MIN_PEP_LENGTH.id); Integer option = new Integer(arg); msgfParameters.setMinPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_MAX_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_MAX_PEP_LENGTH.id); Integer option = new Integer(arg); msgfParameters.setMaxPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_NUM_MATCHES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_NUM_MATCHES.id); Integer option = new Integer(arg); msgfParameters.setNumberOfSpectrumMarches(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_ADDITIONAL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_ADDITIONAL.id); Integer option = new Integer(arg); msgfParameters.setAdditionalOutput(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_TERMINI.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_TERMINI.id); Integer option = new Integer(arg); msgfParameters.setNumberTolerableTermini(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MSGF_PTMS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MSGF_PTMS.id); Integer option = new Integer(arg); msgfParameters.setNumberOfPtmsPerPeptide(option); } /////////////////////////////////// // MyriMatch parameters /////////////////////////////////// MyriMatchParameters myriMatchParameters; algorithmIndex = Advocate.myriMatch.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { myriMatchParameters = new MyriMatchParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, myriMatchParameters); } else { myriMatchParameters = (MyriMatchParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MIN_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MIN_PEP_LENGTH.id); Integer option = new Integer(arg); myriMatchParameters.setMinPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEP_LENGTH.id); Integer option = new Integer(arg); myriMatchParameters.setMaxPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MIN_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MIN_PREC_MASS.id); Double option = new Double(arg); myriMatchParameters.setMinPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MAX_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MAX_PREC_MASS.id); Double option = new Double(arg); myriMatchParameters.setMaxPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_NUM_MATCHES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_NUM_MATCHES.id); Integer option = new Integer(arg); myriMatchParameters.setNumberOfSpectrumMatches(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_PTMS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_PTMS.id); Integer option = new Integer(arg); myriMatchParameters.setMaxDynamicMods(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_FRAGMENTATION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_FRAGMENTATION.id); myriMatchParameters.setFragmentationRule(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_TERMINI.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_TERMINI.id); Integer option = new Integer(arg); myriMatchParameters.setMinTerminiCleavages(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_SMART_PLUS_THREE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_SMART_PLUS_THREE.id); Integer option = new Integer(arg); myriMatchParameters.setUseSmartPlusThreeModel(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_XCORR.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_XCORR.id); Integer option = new Integer(arg); myriMatchParameters.setComputeXCorr(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_TIC_CUTOFF.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_TIC_CUTOFF.id); Double option = new Double(arg); myriMatchParameters.setTicCutoffPercentage(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_INTENSTITY_CLASSES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_INTENSTITY_CLASSES.id); Integer option = new Integer(arg); myriMatchParameters.setNumIntensityClasses(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_CLASS_MULTIPLIER.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_CLASS_MULTIPLIER.id); Integer option = new Integer(arg); myriMatchParameters.setClassSizeMultiplier(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_NUM_BATCHES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_NUM_BATCHES.id); Integer option = new Integer(arg); myriMatchParameters.setNumberOfBatches(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEAK_COUNT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_MAX_PEAK_COUNT.id); Integer option = new Integer(arg); myriMatchParameters.setMaxPeakCount(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MYRIMATCH_OUTPUT_FORMAT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MYRIMATCH_OUTPUT_FORMAT.id); myriMatchParameters.setOutputFormat(arg); } /////////////////////////////////// // MS Amanda parameters /////////////////////////////////// MsAmandaParameters msAmandaParameters; algorithmIndex = Advocate.msAmanda.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { msAmandaParameters = new MsAmandaParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, msAmandaParameters); } else { msAmandaParameters = (MsAmandaParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_DECOY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_DECOY.id); Integer option = new Integer(arg); msAmandaParameters.setGenerateDecoyDatabase(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_INSTRUMENT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_INSTRUMENT.id); msAmandaParameters.setInstrumentID(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_MAX_RANK.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_MAX_RANK.id); Integer option = new Integer(arg); msAmandaParameters.setMaxRank(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_MONOISOTOPIC.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_MONOISOTOPIC.id); Integer option = new Integer(arg); msAmandaParameters.setMonoIsotopic(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.MS_AMANDA_LOW_MEM_MODE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MS_AMANDA_LOW_MEM_MODE.id); Integer option = new Integer(arg); msAmandaParameters.setLowMemoryMode(option == 1); } /////////////////////////////////// // Comet parameters /////////////////////////////////// CometParameters cometParameters; algorithmIndex = Advocate.comet.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { cometParameters = new CometParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, cometParameters); } else { cometParameters = (CometParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_NUM_MATCHES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_NUM_MATCHES.id); Integer option = new Integer(arg); cometParameters.setNumberOfSpectrumMatches(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_PTMS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_PTMS.id); Integer option = new Integer(arg); cometParameters.setMaxVariableMods(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_REQ_PTMS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_REQ_PTMS.id); Integer option = new Integer(arg); cometParameters.setRequireVariableMods(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_MIN_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_MIN_PEAKS.id); Integer option = new Integer(arg); cometParameters.setMinPeaks(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_MIN_PEAK_INTENSITY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_MIN_PEAK_INTENSITY.id); Double option = new Double(arg); cometParameters.setMinPeakIntensity(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR.id); Integer option = new Integer(arg); cometParameters.setRemovePrecursor(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR_TOLERANCE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_REMOVE_PRECURSOR_TOLERANCE.id); Double option = new Double(arg); cometParameters.setRemovePrecursorTolerance(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_LOWER.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_LOWER.id); Double option = new Double(arg); cometParameters.setLowerClearMzRange(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_UPPER.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_CLEAR_MZ_RANGE_UPPER.id); Double option = new Double(arg); cometParameters.setUpperClearMzRange(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_ENZYME_TYPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_ENZYME_TYPE.id); Integer option = new Integer(arg); cometParameters.setEnzymeType(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_ISOTOPE_CORRECTION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_ISOTOPE_CORRECTION.id); Integer option = new Integer(arg); cometParameters.setIsotopeCorrection(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_MIN_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_MIN_PREC_MASS.id); Double option = new Double(arg); cometParameters.setMinPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_MAX_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_MAX_PREC_MASS.id); Double option = new Double(arg); cometParameters.setMaxPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_MAX_FRAGMENT_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_MAX_FRAGMENT_CHARGE.id); Integer option = new Integer(arg); cometParameters.setMaxFragmentCharge(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_REMOVE_METH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_REMOVE_METH.id); Integer option = new Integer(arg); cometParameters.setRemoveMethionine(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_BATCH_SIZE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_BATCH_SIZE.id); Integer option = new Integer(arg); cometParameters.setBatchSize(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_THEORETICAL_FRAGMENT_IONS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_THEORETICAL_FRAGMENT_IONS.id); Integer option = new Integer(arg); cometParameters.setTheoreticalFragmentIonsSumOnly(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_FRAGMENT_BIN_OFFSET.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_FRAGMENT_BIN_OFFSET.id); Double option = new Double(arg); cometParameters.setFragmentBinOffset(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.COMET_OUTPUT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.COMET_OUTPUT.id); if (arg.equalsIgnoreCase(CometParameters.CometOutputFormat.PepXML.toString())) { cometParameters.setSelectedOutputFormat(CometParameters.CometOutputFormat.PepXML); } else if (arg.equalsIgnoreCase(CometParameters.CometOutputFormat.Percolator.toString())) { cometParameters.setSelectedOutputFormat(CometParameters.CometOutputFormat.Percolator); } else if (arg.equalsIgnoreCase(CometParameters.CometOutputFormat.SQT.toString())) { cometParameters.setSelectedOutputFormat(CometParameters.CometOutputFormat.SQT); } else if (arg.equalsIgnoreCase(CometParameters.CometOutputFormat.TXT.toString())) { cometParameters.setSelectedOutputFormat(CometParameters.CometOutputFormat.TXT); } } /////////////////////////////////// // Tide parameters /////////////////////////////////// TideParameters tideParameters; algorithmIndex = Advocate.tide.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { tideParameters = new TideParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, tideParameters); } else { tideParameters = (TideParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_PTMS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PTMS.id); Integer option = new Integer(arg); tideParameters.setMaxVariablePtmsPerPeptide(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_PTMS_PER_TYPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PTMS_PER_TYPE.id); Integer option = new Integer(arg); tideParameters.setMaxVariablePtmsPerTypePerPeptide(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_PEP_LENGTH.id); Integer option = new Integer(arg); tideParameters.setMinPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_PEP_LENGTH.id); Integer option = new Integer(arg); tideParameters.setMaxPeptideLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_PREC_MASS.id); Double option = new Double(arg); tideParameters.setMinPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_PREC_MASS.id); Double option = new Double(arg); tideParameters.setMaxPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_DECOY_FORMAT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_DECOY_FORMAT.id); tideParameters.setDecoyFormat(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_KEEP_TERM_AA.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_KEEP_TERM_AA.id); tideParameters.setKeepTerminalAminoAcids(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_DECOY_SEED.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_DECOY_SEED.id); Integer option = new Integer(arg); tideParameters.setDecoySeed(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_OUTPUT_FOLDER.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_OUTPUT_FOLDER.id); tideParameters.setOutputFolderName(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_PRINT_PEPTIDES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PRINT_PEPTIDES.id); Integer option = new Integer(arg); tideParameters.setPrintPeptides(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_VERBOSITY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_VERBOSITY.id); Integer option = new Integer(arg); tideParameters.setVerbosity(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MONOISOTOPIC.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MONOISOTOPIC.id); Integer option = new Integer(arg); tideParameters.setMonoisotopicPrecursor(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_CLIP_N_TERM.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_CLIP_N_TERM.id); Integer option = new Integer(arg); tideParameters.setClipNtermMethionine(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_DIGESTION_TYPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_DIGESTION_TYPE.id); tideParameters.setDigestionType(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_COMPUTE_SP.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_COMPUTE_SP.id); Integer option = new Integer(arg); tideParameters.setComputeSpScore(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_PSMS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_PSMS.id); Integer option = new Integer(arg); tideParameters.setNumberOfSpectrumMatches(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_COMPUTE_P.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_COMPUTE_P.id); Integer option = new Integer(arg); tideParameters.setComputeExactPValues(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_MZ.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_MZ.id); Double option = new Double(arg); tideParameters.setMinSpectrumMz(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MAX_SPECTRUM_MZ.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MAX_SPECTRUM_MZ.id); Double option = new Double(arg); tideParameters.setMaxSpectrumMz(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_PEAKS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MIN_SPECTRUM_PEAKS.id); Integer option = new Integer(arg); tideParameters.setMinSpectrumPeaks(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_SPECTRUM_CHARGES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_SPECTRUM_CHARGES.id); tideParameters.setSpectrumCharges(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_REMOVE_PREC.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_REMOVE_PREC.id); Integer option = new Integer(arg); tideParameters.setRemovePrecursor(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_REMOVE_PREC_TOL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_REMOVE_PREC_TOL.id); Double option = new Double(arg); tideParameters.setRemovePrecursorTolerance(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_PROGRESS_INDICATOR.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_PROGRESS_INDICATOR.id); Integer option = new Integer(arg); tideParameters.setPrintProgressIndicatorSize(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_USE_FLANKING.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_USE_FLANKING.id); Integer option = new Integer(arg); tideParameters.setUseFlankingPeaks(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_USE_NEUTRAL_LOSSES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_USE_NEUTRAL_LOSSES.id); Integer option = new Integer(arg); tideParameters.setUseNeutralLossPeaks(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MZ_BIN_WIDTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MZ_BIN_WIDTH.id); Double option = new Double(arg); tideParameters.setMzBinWidth(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_MZ_BIN_OFFSET.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_MZ_BIN_OFFSET.id); Double option = new Double(arg); tideParameters.setMzBinOffset(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_CONCAT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_CONCAT.id); Integer option = new Integer(arg); tideParameters.setConcatenatTargetDecoy(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_STORE_SPECTRA.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_STORE_SPECTRA.id); tideParameters.setStoreSpectraFileName(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_TEXT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_TEXT.id); Integer option = new Integer(arg); tideParameters.setTextOutput(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_SQT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_SQT.id); Integer option = new Integer(arg); tideParameters.setSqtOutput(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_PEPXML.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_PEPXML.id); Integer option = new Integer(arg); tideParameters.setPepXmlOutput(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_MZID.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_MZID.id); Integer option = new Integer(arg); tideParameters.setMzidOutput(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_EXPORT_PIN.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_EXPORT_PIN.id); Integer option = new Integer(arg); tideParameters.setPinOutput(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.TIDE_REMOVE_TEMP.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.TIDE_REMOVE_TEMP.id); Integer option = new Integer(arg); tideParameters.setRemoveTempFolders(option == 1); } /////////////////////////////////// // Andromeda parameters /////////////////////////////////// AndromedaParameters andromedaParameters; algorithmIndex = Advocate.andromeda.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { andromedaParameters = new AndromedaParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, andromedaParameters); } else { andromedaParameters = (AndromedaParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEPTIDE_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEPTIDE_MASS.id); Double option = new Double(arg); andromedaParameters.setMaxPeptideMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_COMBINATIONS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_COMBINATIONS.id); Integer option = new Integer(arg); andromedaParameters.setMaxCombinations(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS_WINDOW.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_TOP_PEAKS_WINDOW.id); Integer option = new Integer(arg); andromedaParameters.setTopPeaksWindow(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_INCL_WATER.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_INCL_WATER.id); Integer option = new Integer(arg); andromedaParameters.setIncludeWater(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_INCL_AMMONIA.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_INCL_AMMONIA.id); Integer option = new Integer(arg); andromedaParameters.setIncludeAmmonia(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_NEUTRAL_LOSSES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_NEUTRAL_LOSSES.id); Integer option = new Integer(arg); andromedaParameters.setDependentLosses(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_FRAGMENT_ALL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_FRAGMENT_ALL.id); Integer option = new Integer(arg); andromedaParameters.setFragmentAll(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_EMP_CORRECTION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_EMP_CORRECTION.id); Integer option = new Integer(arg); andromedaParameters.setEmpiricalCorrection(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_HIGHER_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_HIGHER_CHARGE.id); Integer option = new Integer(arg); andromedaParameters.setHigherCharge(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_FRAG_METHOD.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_FRAG_METHOD.id); if (arg.equalsIgnoreCase("CID")) { andromedaParameters.setFragmentationMethod(FragmentationMethod.CID); } else if (arg.equalsIgnoreCase("HCD")) { andromedaParameters.setFragmentationMethod(FragmentationMethod.HCD); } else if (arg.equalsIgnoreCase("ETD")) { andromedaParameters.setFragmentationMethod(FragmentationMethod.ETD); } } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_MODS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_MODS.id); Integer option = new Integer(arg); andromedaParameters.setMaxNumberOfModifications(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MIN_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MIN_PEP_LENGTH.id); Integer option = new Integer(arg); andromedaParameters.setMinPeptideLengthNoEnzyme(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEP_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_PEP_LENGTH.id); Integer option = new Integer(arg); andromedaParameters.setMaxPeptideLengthNoEnzyme(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_EQUAL_IL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_EQUAL_IL.id); Integer option = new Integer(arg); andromedaParameters.setEqualIL(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_MAX_PSMS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_MAX_PSMS.id); Integer option = new Integer(arg); andromedaParameters.setNumberOfCandidates(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANDROMEDA_DECOY_MODE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANDROMEDA_DECOY_MODE.id); if (arg.equalsIgnoreCase("none")) { andromedaParameters.setDecoyMode(AndromedaParameters.AndromedaDecoyMode.none); } else if (arg.equalsIgnoreCase("reverse")) { andromedaParameters.setDecoyMode(AndromedaParameters.AndromedaDecoyMode.reverse); } } /////////////////////////////////// // PepNovo+ parameters /////////////////////////////////// PepnovoParameters pepnovoParameters; algorithmIndex = Advocate.pepnovo.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { pepnovoParameters = new PepnovoParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, pepnovoParameters); } else { pepnovoParameters = (PepnovoParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_HITLIST_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_HITLIST_LENGTH.id); Integer option = new Integer(arg); pepnovoParameters.setHitListLength(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPTNOVO_ESTIMATE_CHARGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPTNOVO_ESTIMATE_CHARGE.id); Integer option = new Integer(arg); pepnovoParameters.setEstimateCharge(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_CORRECT_PREC_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_CORRECT_PREC_MASS.id); Integer option = new Integer(arg); pepnovoParameters.setCorrectPrecursorMass(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_DISCARD_SPECTRA.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_DISCARD_SPECTRA.id); Integer option = new Integer(arg); pepnovoParameters.setDiscardLowQualitySpectra(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_DISCARD_SPECTRA.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_DISCARD_SPECTRA.id); Integer option = new Integer(arg); pepnovoParameters.setDiscardLowQualitySpectra(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_FRAGMENTATION_MODEL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_FRAGMENTATION_MODEL.id); pepnovoParameters.setFragmentationModel(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPNOVO_GENERATE_BLAST.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPNOVO_GENERATE_BLAST.id); Integer option = new Integer(arg); pepnovoParameters.setGenerateQuery(option == 1); } /////////////////////////////////// // DirecTag parameters /////////////////////////////////// DirecTagParameters direcTagParameters; algorithmIndex = Advocate.direcTag.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { direcTagParameters = new DirecTagParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, direcTagParameters); } else { direcTagParameters = (DirecTagParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_TIC_CUTOFF_PERCENTAGE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_TIC_CUTOFF_PERCENTAGE.id); Integer option = new Integer(arg); direcTagParameters.setTicCutoffPercentage(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_PEAK_COUNT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_PEAK_COUNT.id); Integer option = new Integer(arg); direcTagParameters.setMaxPeakCount(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_NUM_INTENSITY_CLASSES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_NUM_INTENSITY_CLASSES.id); Integer option = new Integer(arg); direcTagParameters.setNumIntensityClasses(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_ADJUST_PRECURSOR_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_ADJUST_PRECURSOR_MASS.id); Integer option = new Integer(arg); direcTagParameters.setAdjustPrecursorMass(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MIN_PRECUSOR_ADJUSTMENT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MIN_PRECUSOR_ADJUSTMENT.id); Double option = new Double(arg); direcTagParameters.setMinPrecursorAdjustment(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_PRECUSOR_ADJUSTMENT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_PRECUSOR_ADJUSTMENT.id); Double option = new Double(arg); direcTagParameters.setMaxPrecursorAdjustment(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_PRECUSOR_ADJUSTMENT_STEP.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_PRECUSOR_ADJUSTMENT_STEP.id); Double option = new Double(arg); direcTagParameters.setPrecursorAdjustmentStep(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_NUM_CHARGE_STATES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_NUM_CHARGE_STATES.id); Integer option = new Integer(arg); direcTagParameters.setNumChargeStates(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_OUTPUT_SUFFIX.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_OUTPUT_SUFFIX.id); direcTagParameters.setOutputSuffix(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_USE_CHARGE_STATE_FROM_MS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_USE_CHARGE_STATE_FROM_MS.id); Integer option = new Integer(arg); direcTagParameters.setUseChargeStateFromMS(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_DUPLICATE_SPECTRA.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_DUPLICATE_SPECTRA.id); Integer option = new Integer(arg); direcTagParameters.setDuplicateSpectra(option == 1); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_DEISOTOPING_MODE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_DEISOTOPING_MODE.id); Integer option = new Integer(arg); direcTagParameters.setDeisotopingMode(option); // @TODO: check for valid values!!! } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_ISOTOPE_MZ_TOLERANCE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_ISOTOPE_MZ_TOLERANCE.id); Double option = new Double(arg); direcTagParameters.setIsotopeMzTolerance(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_MZ_TOLERANCE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_MZ_TOLERANCE.id); Double option = new Double(arg); direcTagParameters.setComplementMzTolerance(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_TAG_LENGTH.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_TAG_LENGTH.id); Integer option = new Integer(arg); direcTagParameters.setTagLength(option); // @TODO: check for valid values!!! } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_DYNAMIC_MODS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_DYNAMIC_MODS.id); Integer option = new Integer(arg); direcTagParameters.setMaxDynamicMods(option); // @TODO: check for valid values!!! } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MAX_TAG_COUNT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MAX_TAG_COUNT.id); Integer option = new Integer(arg); direcTagParameters.setMaxTagCount(option); // @TODO: check for valid values!!! } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_INTENSITY_SCORE_WEIGHT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_INTENSITY_SCORE_WEIGHT.id); Double option = new Double(arg); direcTagParameters.setIntensityScoreWeight(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_MZ_FIDELITY_SCORE_WEIGHT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_MZ_FIDELITY_SCORE_WEIGHT.id); Double option = new Double(arg); direcTagParameters.setMzFidelityScoreWeight(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_SCORE_WEIGHT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DIRECTAG_COMPLEMENT_SCORE_WEIGHT.id); Double option = new Double(arg); direcTagParameters.setComplementScoreWeight(option); } /////////////////////////////////// // pNovo+ parameters /////////////////////////////////// PNovoParameters pNovoParameters; algorithmIndex = Advocate.pNovo.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { pNovoParameters = new PNovoParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, pNovoParameters); } else { pNovoParameters = (PNovoParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.PNOVO_NUMBER_OF_PEPTIDES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_NUMBER_OF_PEPTIDES.id); Integer option = new Integer(arg); pNovoParameters.setNumberOfPeptides(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.PNOVO_LOWER_PRECURSOR_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_LOWER_PRECURSOR_MASS.id); Integer option = new Integer(arg); pNovoParameters.setLowerPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.PNOVO_UPPER_PRECURSOR_MASS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_UPPER_PRECURSOR_MASS.id); Integer option = new Integer(arg); pNovoParameters.setUpperPrecursorMass(option); } if (commandLine.hasOption(IdentificationParametersCLIParams.PNOVO_ACTIVATION_TYPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PNOVO_ACTIVATION_TYPE.id); pNovoParameters.setActicationType(arg); } /////////////////////////////////// // Novor parameters /////////////////////////////////// NovorParameters novorParameters; algorithmIndex = Advocate.novor.getIndex(); identificationAlgorithmParameter = searchParameters.getIdentificationAlgorithmParameter(algorithmIndex); if (identificationAlgorithmParameter == null) { novorParameters = new NovorParameters(); searchParameters.setIdentificationAlgorithmParameter(algorithmIndex, novorParameters); } else { novorParameters = (NovorParameters) identificationAlgorithmParameter; } if (commandLine.hasOption(IdentificationParametersCLIParams.NOVOR_FRAGMENTATION.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.NOVOR_FRAGMENTATION.id); novorParameters.setFragmentationMethod(arg); } if (commandLine.hasOption(IdentificationParametersCLIParams.NOVOR_MASS_ANALYZER.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.NOVOR_MASS_ANALYZER.id); novorParameters.setMassAnalyzer(arg); } // Set the parameters in the identification parameters if (identificationParameters != null) { identificationParameters.setSearchParameters(searchParameters); } else { identificationParameters = new IdentificationParameters(searchParameters); } // set the parameter file name to the same as the name of the file if (identificationParameters.getName() == null && destinationFile != null) { identificationParameters.setName(destinationFile.getName().substring(0, destinationFile.getName().lastIndexOf("."))); } ////////////////////////////////// // Gene mapping preferences ////////////////////////////////// GenePreferences genePreferences = identificationParameters.getGenePreferences(); if (genePreferences == null) { genePreferences = new GenePreferences(); identificationParameters.setGenePreferences(genePreferences); } if (commandLine.hasOption(IdentificationParametersCLIParams.USE_GENE_MAPPING.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.USE_GENE_MAPPING.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.USE_GENE_MAPPING.id + ": " + arg + ". 0 or 1 expected."); } genePreferences.setUseGeneMapping(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.UPDATE_GENE_MAPPING.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.UPDATE_GENE_MAPPING.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.UPDATE_GENE_MAPPING.id + ": " + arg + ". 0 or 1 expected."); } genePreferences.setAutoUpdate(value); } ////////////////////////////////// // Spectrum annotation ////////////////////////////////// AnnotationSettings annotationSettings = identificationParameters.getAnnotationPreferences(); if (annotationSettings == null) { annotationSettings = new AnnotationSettings(searchParameters); identificationParameters.setAnnotationSettings(annotationSettings); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANNOTATION_LEVEL.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANNOTATION_LEVEL.id); Double value = new Double(arg); annotationSettings.setIntensityLimit(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANNOTATION_MZ_TOLERANCE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANNOTATION_MZ_TOLERANCE.id); Double value = new Double(arg); annotationSettings.setFragmentIonAccuracy(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.ANNOTATION_HIGH_RESOLUTION.id)) { //@TODO: extend the command line to support ties resolution settings String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.ANNOTATION_HIGH_RESOLUTION.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.ANNOTATION_HIGH_RESOLUTION.id + ": " + arg + ". 0 or 1 expected."); } SpectrumAnnotator.TiesResolution tiesResolution = value ? SpectrumAnnotator.TiesResolution.mostAccurateMz : SpectrumAnnotator.TiesResolution.mostIntense; annotationSettings.setTiesResolution(tiesResolution); } ////////////////////////////////// // Sequence Matching ////////////////////////////////// SequenceMatchingPreferences sequenceMatchingPreferences = identificationParameters.getSequenceMatchingPreferences(); if (sequenceMatchingPreferences == null) { sequenceMatchingPreferences = new SequenceMatchingPreferences(); identificationParameters.setSequenceMatchingPreferences(sequenceMatchingPreferences); } if (commandLine.hasOption(IdentificationParametersCLIParams.SEQUENCE_INDEX_TYPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SEQUENCE_INDEX_TYPE.id); Integer intValue = new Integer(arg); PeptideMapperType value = PeptideMapperType.getPeptideMapperType(intValue); sequenceMatchingPreferences.setPeptideMapperType(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SEQUENCE_MATCHING_TYPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SEQUENCE_MATCHING_TYPE.id); Integer intValue = new Integer(arg); SequenceMatchingPreferences.MatchingType value = SequenceMatchingPreferences.MatchingType.getMatchingType(intValue); sequenceMatchingPreferences.setSequenceMatchingType(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SEQUENCE_MATCHING_X.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SEQUENCE_MATCHING_X.id); Double value = new Double(arg); sequenceMatchingPreferences.setLimitX(value); } ////////////////////////////////// // Import Filters ////////////////////////////////// PeptideAssumptionFilter peptideAssumptionFilter = identificationParameters.getPeptideAssumptionFilter(); if (commandLine.hasOption(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MIN.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MIN.id); Integer value = new Integer(arg); peptideAssumptionFilter.setMinPepLength(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MAX.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PEPTIDE_LENGTH_MAX.id); Integer value = new Integer(arg); peptideAssumptionFilter.setMaxPepLength(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.IMPORT_MC_MIN.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_MC_MIN.id); Integer value = new Integer(arg); peptideAssumptionFilter.setMinMissedCleavages(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.IMPORT_MC_MAX.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_MC_MAX.id); Integer value = new Integer(arg); peptideAssumptionFilter.setMaxMissedCleavages(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ.id); Double value = new Double(arg); peptideAssumptionFilter.setMaxMzDeviation(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ_PPM.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ_PPM.id); Integer option = new Integer(arg); switch (option) { case 1: peptideAssumptionFilter.setIsPpm(true); break; case 0: peptideAssumptionFilter.setIsPpm(false); break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.IMPORT_PRECURSOR_MZ_PPM.id + ": " + arg + ". 0 or 1 expected."); } } if (commandLine.hasOption(IdentificationParametersCLIParams.EXCLUDE_UNKNOWN_PTMs.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.EXCLUDE_UNKNOWN_PTMs.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.EXCLUDE_UNKNOWN_PTMs.id + ": " + arg + ". 0 or 1 expected."); } peptideAssumptionFilter.setRemoveUnknownPTMs(value); } ////////////////////////////////// // PTM localization parameters ////////////////////////////////// PTMScoringPreferences ptmScoringPreferences = identificationParameters.getPtmScoringPreferences(); if (ptmScoringPreferences == null) { ptmScoringPreferences = new PTMScoringPreferences(); identificationParameters.setPtmScoringPreferences(ptmScoringPreferences); } if (commandLine.hasOption(IdentificationParametersCLIParams.PTM_SCORE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PTM_SCORE.id); Integer intValue = new Integer(arg); PtmScore ptmScore = PtmScore.getScore(intValue); if (ptmScore == PtmScore.None) { ptmScoringPreferences.setProbabilitsticScoreCalculation(false); } else { ptmScoringPreferences.setProbabilitsticScoreCalculation(true); ptmScoringPreferences.setSelectedProbabilisticScore(ptmScore); } } if (commandLine.hasOption(IdentificationParametersCLIParams.PTM_THRESHOLD.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PTM_THRESHOLD.id); Double value = new Double(arg); ptmScoringPreferences.setEstimateFlr(false); ptmScoringPreferences.setProbabilisticScoreThreshold(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SCORE_NEUTRAL_LOSSES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SCORE_NEUTRAL_LOSSES.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SCORE_NEUTRAL_LOSSES.id + ": " + arg + ". 0 or 1 expected."); } ptmScoringPreferences.setProbabilisticScoreNeutralLosses(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.PTM_SEQUENCE_MATCHING_TYPE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PTM_SEQUENCE_MATCHING_TYPE.id); Integer intValue = new Integer(arg); SequenceMatchingPreferences.MatchingType value = SequenceMatchingPreferences.MatchingType.getMatchingType(intValue); SequenceMatchingPreferences ptmSequenceMatchingPreferences = new SequenceMatchingPreferences(); ptmSequenceMatchingPreferences.setLimitX(sequenceMatchingPreferences.getLimitX()); ptmSequenceMatchingPreferences.setSequenceMatchingType(value); ptmScoringPreferences.setSequenceMatchingPreferences(ptmSequenceMatchingPreferences); } if (commandLine.hasOption(IdentificationParametersCLIParams.PTM_ALIGNMENT.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PTM_ALIGNMENT.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.PTM_ALIGNMENT.id + ": " + arg + ". 0 or 1 expected."); } ptmScoringPreferences.setAlignNonConfidentPTMs(value); } ////////////////////////////////// // Protein inference parameters ////////////////////////////////// ProteinInferencePreferences proteinInferencePreferences = identificationParameters.getProteinInferencePreferences(); if (commandLine.hasOption(IdentificationParametersCLIParams.DB_PI.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.DB_PI.id); File fastaFile = new File(arg); proteinInferencePreferences.setProteinSequenceDatabase(fastaFile); } if (commandLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SIMPLIFY_GOUPS.id + ": " + arg + ". 0 or 1 expected."); } proteinInferencePreferences.setSimplifyGroups(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_SCORE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_SCORE.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SIMPLIFY_GOUPS_SCORE.id + ": " + arg + ". 0 or 1 expected."); } proteinInferencePreferences.setSimplifyGroupsScore(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_ENZYMATICITY.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_ENZYMATICITY.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SIMPLIFY_GOUPS_ENZYMATICITY.id + ": " + arg + ". 0 or 1 expected."); } proteinInferencePreferences.setSimplifyGroupsEnzymaticity(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_EVIDENCE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_EVIDENCE.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SIMPLIFY_GOUPS_EVIDENCE.id + ": " + arg + ". 0 or 1 expected."); } proteinInferencePreferences.setSimplifyGroupsEvidence(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_UNCHARACTERIZED.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SIMPLIFY_GOUPS_UNCHARACTERIZED.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SIMPLIFY_GOUPS_UNCHARACTERIZED.id + ": " + arg + ". 0 or 1 expected."); } proteinInferencePreferences.setSimplifyGroupsUncharacterized(value); } ////////////////////////////////// // Validation parameters ////////////////////////////////// IdMatchValidationPreferences idMatchValidationPreferences = identificationParameters.getIdValidationPreferences(); if (idMatchValidationPreferences == null) { idMatchValidationPreferences = new IdMatchValidationPreferences(); identificationParameters.setIdValidationPreferences(idMatchValidationPreferences); } if (commandLine.hasOption(IdentificationParametersCLIParams.PSM_FDR.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PSM_FDR.id); Double value = new Double(arg); idMatchValidationPreferences.setDefaultPsmFDR(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.PEPTIDE_FDR.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PEPTIDE_FDR.id); Double value = new Double(arg); idMatchValidationPreferences.setDefaultPeptideFDR(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.PROTEIN_FDR.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PROTEIN_FDR.id); Double value = new Double(arg); idMatchValidationPreferences.setDefaultProteinFDR(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SEPARATE_PSMs.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SEPARATE_PSMs.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SEPARATE_PSMs.id + ": " + arg + ". 0 or 1 expected."); } idMatchValidationPreferences.setSeparatePsms(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.SEPARATE_PEPTIDES.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.SEPARATE_PEPTIDES.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.SEPARATE_PEPTIDES.id + ": " + arg + ". 0 or 1 expected."); } idMatchValidationPreferences.setSeparatePeptides(value); } if (commandLine.hasOption(IdentificationParametersCLIParams.MERGE_SUBGROUPS.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.MERGE_SUBGROUPS.id); Integer intValue = new Integer(arg); boolean value; switch (intValue) { case 1: value = true; break; case 0: value = false; break; default: throw new IllegalArgumentException("Incorrect value for parameter " + IdentificationParametersCLIParams.MERGE_SUBGROUPS.id + ": " + arg + ". 0 or 1 expected."); } idMatchValidationPreferences.setMergeSmallSubgroups(value); } ////////////////////////////////// // Fraction parameters ////////////////////////////////// FractionSettings fractionSettings = identificationParameters.getFractionSettings(); if (fractionSettings == null) { fractionSettings = new FractionSettings(); identificationParameters.setFractionSettings(fractionSettings); } if (commandLine.hasOption(IdentificationParametersCLIParams.PROTEIN_FRACTION_MW_CONFIDENCE.id)) { String arg = commandLine.getOptionValue(IdentificationParametersCLIParams.PROTEIN_FRACTION_MW_CONFIDENCE.id); Double value = new Double(arg); fractionSettings.setProteinConfidenceMwPlots(value); } } /** * Sets the identification parameters. * * @param identificationParameters the identification parameters */ public void setIdentificationParameters(IdentificationParameters identificationParameters) { this.identificationParameters = identificationParameters; } /** * Returns the identification parameters. * * @return the identification parameters */ public IdentificationParameters getIdentificationParameters() { return identificationParameters; } /** * Returns the input parameters file. * * @return the input parameters file */ public File getInputFile() { return inputFile; } /** * Returns the file where to save the identification parameters. * * @return the file where to save the identification parameters */ public File getDestinationFile() { return destinationFile; } /** * Indicates whether the modifications should be printed. * * @return true if the modifications should be printed */ public Boolean isListMods() { return listMods; } /** * Indicates whether the enzymes should be printed. * * @return true if the enzymes should be printed */ public Boolean isListEnzymes() { return listEnzymes; } /** * Verifies that modifications are correctly recognized. * * @param aLine the command line to validate * @return true if the startup was valid * @throws IOException if an IOException occurs */ public static boolean isValidModifications(CommandLine aLine) throws IOException { boolean error = false; if (aLine.hasOption(IdentificationParametersCLIParams.FIXED_MODS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.FIXED_MODS.id); try { ArrayList<String> args = CommandLineUtils.splitInput(arg); for (String ptmName : args) { PTM ptm = PTMFactory.getInstance().getPTM(ptmName); if (ptm == null || ptm == PTMFactory.unknownPTM) { throw new IllegalArgumentException("PTM " + ptmName + " not found."); } } } catch (IllegalArgumentException e) { if (!error) { System.out.println(System.getProperty("line.separator") + "An error occurred while parsing the fixed modifications:" + System.getProperty("line.separator") + e.getLocalizedMessage() + System.getProperty("line.separator")); } error = true; } } if (aLine.hasOption(IdentificationParametersCLIParams.VARIABLE_MODS.id)) { String arg = aLine.getOptionValue(IdentificationParametersCLIParams.VARIABLE_MODS.id); try { ArrayList<String> args = CommandLineUtils.splitInput(arg); for (String ptmName : args) { PTM ptm = PTMFactory.getInstance().getPTM(ptmName); if (ptm == null || ptm == PTMFactory.unknownPTM) { throw new IllegalArgumentException("PTM " + ptmName + " not found."); } } } catch (IllegalArgumentException e) { if (!error) { System.out.println(System.getProperty("line.separator") + "An error occurred while parsing the variable modifications:" + System.getProperty("line.separator") + e.getLocalizedMessage() + System.getProperty("line.separator")); } error = true; } } return !error; } }