package com.compomics.util.experiment.biology; import com.compomics.util.experiment.biology.ions.ReporterIon; import com.compomics.util.experiment.identification.identification_parameters.SearchParameters; import com.compomics.util.experiment.identification.matches.ModificationMatch; import com.compomics.util.experiment.identification.amino_acid_tags.Tag; import com.compomics.util.experiment.identification.amino_acid_tags.TagComponent; import com.compomics.util.experiment.identification.identification_parameters.PtmSettings; import com.compomics.util.io.json.JsonMarshaller; import com.compomics.util.preferences.SequenceMatchingPreferences; import com.compomics.util.pride.CvTerm; import java.awt.Color; import java.io.*; import java.sql.SQLException; import java.util.ArrayList; import java.util.Collections; import java.util.HashMap; /** * This factory will load PTM from an XML file and provide them on demand as * standard class. * * @author Marc Vaudel * @author Harald Barsnes */ public class PTMFactory implements Serializable { /** * Serial number for serialization compatibility. */ // static final long serialVersionUID = 7935264190312934466L; /** * Instance of the factory. */ private static PTMFactory instance = null; /** * The folder containing the PTM factory. */ private static String SERIALIZATION_FILE_FOLDER = System.getProperty("user.home") + "/.compomics"; /** * The name of the PTM factory back-up file. The version number follows the one of utilities. */ private static String SERIALIZATION_FILE_NAME = "ptmFactory-4.8.0.json"; /** * A map linking indexes with modifications. */ private HashMap<String, PTM> ptmMap = new HashMap<String, PTM>(); /** * List of the indexes of default modifications. */ private ArrayList<String> defaultMods = new ArrayList<String>(); /** * List of the indexes of user modifications. */ private ArrayList<String> userMods = new ArrayList<String>(); /** * Mapping of the expected modification names to the color used. */ private HashMap<String, Color> userColors = new HashMap<String, Color>(); /** * Unknown modification to be returned when the modification is not found. */ public static final PTM unknownPTM = new PTM(PTM.MODAA, "unknown", "*", null, null, new AminoAcidPattern()); /** * Suffix for the modification clone targeting a single amino acid instead * of a pattern. */ public static final String SINGLE_AA_SUFFIX = "|single_aa"; /** * Set to true if the default mods are sorted alphabetically. */ public boolean defaultModsSorted = false; /** * Set to true if the users mods are sorted alphabetically. */ public boolean usersModsSorted = false; /** * Constructor for the factory. */ private PTMFactory() { defaultModsSorted = false; setDefaultModifications(); } /** * Static method to get the instance of the factory. * * @return the instance of the factory */ public static PTMFactory getInstance() { if (instance == null) { try { File savedFile = new File(SERIALIZATION_FILE_FOLDER, SERIALIZATION_FILE_NAME); instance = loadFromFile(savedFile); instance.checkUserModifications(); } catch (Exception e) { instance = new PTMFactory(); } } return instance; } /** * Loads an enzyme factory from a file. The file must be an export of the factory in the json format. * * @param file the file to load * * @return the enzyme factory saved in file * * @throws IOException exception thrown whenever an error occurred while loading the file */ public static PTMFactory loadFromFile(File file) throws IOException { JsonMarshaller jsonMarshaller = new JsonMarshaller(); PTMFactory result = (PTMFactory) jsonMarshaller.fromJson(PTMFactory.class, file); return result; } /** * Saves a PTM factory to a file. * * @param ptmFactory the PTM factory to save * @param file the file where to save * * @throws IOException exception thrown whenever an error occurred while saving the file */ public static void saveToFile(PTMFactory ptmFactory, File file) throws IOException { JsonMarshaller jsonMarshaller = new JsonMarshaller(); jsonMarshaller.saveObjectToJson(ptmFactory, file); } /** * Add neutral losses and reporter ions for the user PTMs. */ private void checkUserModifications() { for (String tempUserMod : getUserModifications()) { PTM ptm = getPTM(tempUserMod); if (!ptm.getNeutralLosses().isEmpty()) { for (NeutralLoss neutralLoss : ptm.getNeutralLosses()) { if (NeutralLoss.getNeutralLoss(neutralLoss.name) == null) { NeutralLoss.addNeutralLoss(neutralLoss); } } } if (!ptm.getReporterIons().isEmpty()) { for (ReporterIon reporterIon : ptm.getReporterIons()) { if (ReporterIon.getReporterIon(reporterIon.getName()) == null) { ReporterIon.addReporterIon(reporterIon); } } } } } /** * Clears the factory getInstance() needs to be called afterwards. */ public void clearFactory() { instance = new PTMFactory(); } /** * Reloads the factory getInstance() needs to be called afterwards. */ public void reloadFactory() { instance = null; } /** * Saves the factory in the user folder. * * @throws IOException exception thrown whenever an error occurred while * saving the ptmFactory */ public void saveFactory() throws IOException { File factoryFile = new File(SERIALIZATION_FILE_FOLDER, SERIALIZATION_FILE_NAME); if (!factoryFile.getParentFile().exists()) { factoryFile.getParentFile().mkdir(); } saveToFile(instance, factoryFile); } /** * Returns a clone of the given PTM targeting a single amino acid instead of * a pattern. * * @param modification the modification of interest * * @return a clone of the given PTM targeting a single amino acid instead of * a pattern */ public static PTM getSingleAAPTM(PTM modification) { if (!modification.isStandardSearch()) { return new PTM(modification.getType(), modification.getShortName(), modification.getName() + SINGLE_AA_SUFFIX, modification.getAtomChainAdded(), modification.getAtomChainRemoved(), modification.getPattern().getStandardSearchPattern()); } else { return modification; } } /** * Returns a clone of the given PTM targeting a single amino acid instead of * a pattern. * * @param modificationName the name of the modification of interest * * @return a clone of the given PTM targeting a single amino acid instead of * a pattern */ public PTM getSingleAAPTM(String modificationName) { PTM modification = getPTM(modificationName); return getSingleAAPTM(modification); } /** * Adds a new user modification. * * @param ptm the new modification to add */ public void addUserPTM(PTM ptm) { String modName = ptm.getName(); ptmMap.put(modName, ptm); if (!userMods.contains(modName)) { userMods.add(modName); } else { userMods.set(userMods.indexOf(modName), modName); } usersModsSorted = false; // add the neutral losses and reporter ions if (!ptm.getNeutralLosses().isEmpty()) { for (NeutralLoss neutralLoss : ptm.getNeutralLosses()) { if (NeutralLoss.getNeutralLoss(neutralLoss.name) == null) { NeutralLoss.addNeutralLoss(neutralLoss); } } } if (!ptm.getReporterIons().isEmpty()) { for (ReporterIon reporterIon : ptm.getReporterIons()) { if (ReporterIon.getReporterIon(reporterIon.getName()) == null) { ReporterIon.addReporterIon(reporterIon); } } } } /** * Removes a user PTM. * * @param ptmName the name of the PTM to remove */ public void removeUserPtm(String ptmName) { if (defaultMods.contains(ptmName)) { throw new IllegalArgumentException("Impossible to remove default modification " + ptmName); } ptmMap.remove(ptmName); userMods.remove(ptmName); } /** * Returns the PTM indexed by its name. * * @param name the name of the desired PTM * @return The desired PTM */ public PTM getPTM(String name) { PTM ptm = ptmMap.get(name); if (ptm != null) { return ptm; } return unknownPTM; } /** * Returns a boolean indicating whether the PTM is loaded in the factory. * * @param name the name of the PTM * @return a boolean indicating whether the PTM is loaded in the factory */ public boolean containsPTM(String name) { return ptmMap.containsKey(name) || name.equals(unknownPTM.getName()); } /** * Returns the names of the default modifications. * * @return the names of the default modifications */ public ArrayList<String> getDefaultModifications() { return defaultMods; } /** * Returns the alphabetically ordered names of the default modifications. * * @return the alphabetically ordered names of the default modifications */ public ArrayList<String> getDefaultModificationsOrdered() { if (!defaultModsSorted) { Collections.sort(defaultMods); defaultModsSorted = true; } return defaultMods; } /** * Returns the names of the user defined modifications. * * @return the names of the user defined modifications */ public ArrayList<String> getUserModifications() { return userMods; } /** * Returns the alphabetically ordered names of the user defined * modifications. * * @return the alphabetically ordered names of the user defined * modifications */ public ArrayList<String> getUserModificationsOrdered() { if (!usersModsSorted) { Collections.sort(userMods); usersModsSorted = true; } return userMods; } /** * Returns the names of all imported PTMs. * * @return the names of all imported PTMs */ public ArrayList<String> getPTMs() { return new ArrayList<String>(ptmMap.keySet()); } /** * Convenience method returning a boolean indicating whether a PTM is user * defined or default. * * @param ptmName the name of the PTM * @return boolean indicating whether a PTM is user defined */ public boolean isUserDefined(String ptmName) { return !defaultMods.contains(ptmName); } /** * Verifies that the modifications backed-up in the search parameters are * loaded and alerts the user in case conflicts are found. * * @param searchParameters the search parameters to load * @param overwrite if true, overwrite the modification * @return returns a list of modifications already loaded which should be * checked. */ public ArrayList<String> loadBackedUpModifications(SearchParameters searchParameters, boolean overwrite) { PtmSettings modificationProfile = searchParameters.getPtmSettings(); ArrayList<String> toCheck = new ArrayList<String>(); for (String modification : modificationProfile.getBackedUpPtms()) { if (containsPTM(modification)) { PTM oldPTM = getPTM(modification); PTM newPTM = modificationProfile.getPtm(modification); if (!oldPTM.isSameAs(newPTM)) { toCheck.add(modification); if (overwrite) { PTM ptm = modificationProfile.getPtm(modification); ptmMap.put(modification, ptm); for (NeutralLoss neutralLoss : ptm.getNeutralLosses()) { NeutralLoss.addNeutralLoss(neutralLoss); } } } } else { PTM ptm = modificationProfile.getPtm(modification); addUserPTM(ptm); for (NeutralLoss neutralLoss : ptm.getNeutralLosses()) { NeutralLoss.addNeutralLoss(neutralLoss); } } } return toCheck; } /** * Returns the expected modifications based on the modification profile, the * peptide found and the modification details. Returns the names in a map * where the modification names are indexed by the index on the sequence. 1 * is the first amino acid. * * @param modificationProfile the modification profile used for the search * (available in the search parameters) * @param peptide the peptide identified with the parent proteins (necessary * for protein termini modifications) * @param modificationMass the modification mass as found in the search * results * @param ptmMassTolerance the mass tolerance to use to match the * modification mass * @param sequenceMatchingPreferences the sequence matching preferences for * peptide to protein mapping * @param ptmSequenceMatchingPreferences the sequence matching preferences * for PTM to peptide mapping * * @return a map of expected PTMs corresponding to the given * characteristics. Empty if none found. * @throws IOException exception thrown whenever an error occurred while * reading a protein sequence * @throws IllegalArgumentException exception thrown whenever an error * occurred while reading a protein sequence * @throws InterruptedException exception thrown whenever an error occurred * while reading a protein sequence * @throws FileNotFoundException if a FileNotFoundException occurs * @throws ClassNotFoundException if a ClassNotFoundException occurs * @throws SQLException if an SQLException occurs */ public HashMap<Integer, ArrayList<String>> getExpectedPTMs(PtmSettings modificationProfile, Peptide peptide, double modificationMass, double ptmMassTolerance, SequenceMatchingPreferences sequenceMatchingPreferences, SequenceMatchingPreferences ptmSequenceMatchingPreferences) throws IOException, IllegalArgumentException, InterruptedException, FileNotFoundException, ClassNotFoundException, FileNotFoundException, SQLException { HashMap<Integer, ArrayList<String>> mapping = new HashMap<Integer, ArrayList<String>>(); for (String ptmName : modificationProfile.getAllNotFixedModifications()) { PTM ptm = getPTM(ptmName); if (Math.abs(ptm.getMass() - modificationMass) <= ptmMassTolerance) { for (int site : peptide.getPotentialModificationSites(ptm, sequenceMatchingPreferences, ptmSequenceMatchingPreferences)) { ArrayList<String> modifications = mapping.get(site); if (modifications == null) { modifications = new ArrayList<String>(); mapping.put(site, modifications); } modifications.add(ptmName); } } } return mapping; } /** * Returns the names of the possibly expected modification based on the name * of the expected modification in a map where the PTM names are indexed by * their potential site on the sequence. 1 is the first amino acid. * Candidate PTMs are expected non fixed modifications with the same mass. * * @param modificationProfile the modification profile used for the search * (available in the search parameters) * @param peptide the peptide * @param ptmName the name of the searched PTM * @param ptmMassTolerance the PTM mass tolerance * @param sequenceMatchingPreferences the sequence matching preferences for * peptide to protein mapping * @param ptmSequenceMatchingPreferences the sequence matching preferences * for PTM to peptide mapping * * @return the possible expected modification names. Empty if not found. * * @throws IOException exception thrown whenever an error occurred while * reading a protein sequence * @throws IllegalArgumentException exception thrown whenever an error * occurred while reading a protein sequence * @throws InterruptedException exception thrown whenever an error occurred * while reading a protein sequence * @throws FileNotFoundException if a FileNotFoundException occurs * @throws ClassNotFoundException if a ClassNotFoundException occurs * @throws SQLException if an SQLException occurs */ public HashMap<Integer, ArrayList<String>> getExpectedPTMs(PtmSettings modificationProfile, Peptide peptide, String ptmName, Double ptmMassTolerance, SequenceMatchingPreferences sequenceMatchingPreferences, SequenceMatchingPreferences ptmSequenceMatchingPreferences) throws IOException, IllegalArgumentException, InterruptedException, FileNotFoundException, ClassNotFoundException, SQLException { PTM ptm = getPTM(ptmName); return getExpectedPTMs(modificationProfile, peptide, ptm.getMass(), ptmMassTolerance, sequenceMatchingPreferences, ptmSequenceMatchingPreferences); } /** * Removes the fixed modifications of the peptide and remaps the one * searched for according to the ModificationProfile. Note: for protein * terminal modification the protein must be loaded in the sequence factory. * * @param modificationProfile the modification profile * @param peptide the peptide * @param sequenceMatchingPreferences the sequence matching preferences for * peptide to protein mapping * @param ptmSequenceMatchingPreferences the sequence matching preferences * for PTM to peptide mapping * * @throws IOException exception thrown whenever an error occurred while * reading a protein sequence * @throws IllegalArgumentException exception thrown whenever an error * occurred while reading a protein sequence * @throws InterruptedException exception thrown whenever an error occurred * while reading a protein sequence * @throws FileNotFoundException if a FileNotFoundException occurs * @throws ClassNotFoundException if a ClassNotFoundException occurs * @throws SQLException if an SQLException occurs */ public void checkFixedModifications(PtmSettings modificationProfile, Peptide peptide, SequenceMatchingPreferences sequenceMatchingPreferences, SequenceMatchingPreferences ptmSequenceMatchingPreferences) throws IOException, IllegalArgumentException, InterruptedException, FileNotFoundException, ClassNotFoundException, SQLException { if (peptide.isModified()) { ArrayList<ModificationMatch> toRemove = new ArrayList<ModificationMatch>(peptide.getNModifications()); for (ModificationMatch modMatch : peptide.getModificationMatches()) { if (!modMatch.isVariable()) { toRemove.add(modMatch); } } for (ModificationMatch modMatch : toRemove) { peptide.getModificationMatches().remove(modMatch); } } HashMap<Integer, Double> taken = new HashMap<Integer, Double>(peptide.getNModifications()); for (String fixedModification : modificationProfile.getFixedModifications()) { PTM ptm = getPTM(fixedModification); switch (ptm.getType()) { case PTM.MODAA: for (int pos : peptide.getPotentialModificationSites(ptm, sequenceMatchingPreferences, ptmSequenceMatchingPreferences)) { if (!taken.containsKey(pos)) { taken.put(pos, ptm.getMass()); peptide.addModificationMatch(new ModificationMatch(fixedModification, false, pos)); } else if (taken.get(pos) != ptm.getMass()) { // @TODO: compare against the accuracy throw new IllegalArgumentException("Attempting to put two fixed modifications of different masses (" + taken.get(pos) + ", " + ptm.getMass() + ") at position " + pos + " in peptide " + peptide.getSequence() + "."); } } break; case PTM.MODC: if (!peptide.isCterm(sequenceMatchingPreferences).isEmpty()) { peptide.addModificationMatch(new ModificationMatch(fixedModification, false, peptide.getSequence().length())); } break; case PTM.MODN: if (!peptide.isNterm(sequenceMatchingPreferences).isEmpty()) { peptide.addModificationMatch(new ModificationMatch(fixedModification, false, 1)); } break; case PTM.MODCAA: { String sequence = peptide.getSequence(); if (peptide.getPotentialModificationSites(ptm, sequenceMatchingPreferences, ptmSequenceMatchingPreferences).contains(sequence.length())) { peptide.addModificationMatch(new ModificationMatch(fixedModification, false, peptide.getSequence().length())); } break; } case PTM.MODNAA: if (peptide.getPotentialModificationSites(ptm, sequenceMatchingPreferences, ptmSequenceMatchingPreferences).contains(1)) { peptide.addModificationMatch(new ModificationMatch(fixedModification, false, 1)); } break; case PTM.MODCP: peptide.addModificationMatch(new ModificationMatch(fixedModification, false, peptide.getSequence().length())); break; case PTM.MODNP: peptide.addModificationMatch(new ModificationMatch(fixedModification, false, 1)); break; case PTM.MODCPAA: { String sequence = peptide.getSequence(); if (peptide.getPotentialModificationSites(ptm, sequenceMatchingPreferences, ptmSequenceMatchingPreferences).contains(sequence.length())) { peptide.addModificationMatch(new ModificationMatch(fixedModification, false, sequence.length())); } break; } case PTM.MODNPAA: if (peptide.getPotentialModificationSites(ptm, sequenceMatchingPreferences, ptmSequenceMatchingPreferences).contains(1)) { peptide.addModificationMatch(new ModificationMatch(fixedModification, false, 1)); } break; default: break; } } } /** * Removes the fixed modifications of the given tag and remaps the one * searched for according to the ModificationProfile. Note: for protein * terminal modification the protein must be loaded in the sequence factory. * * @param modificationProfile the modification profile * @param tag the tag * @param sequenceMatchingPreferences the sequence matching preferences for * PTM to amino acid mapping * * @throws IOException exception thrown whenever an error occurred while * reading a protein sequence * @throws IllegalArgumentException exception thrown whenever an error * occurred while reading a protein sequence * @throws InterruptedException exception thrown whenever an error occurred * while reading a protein sequence * @throws FileNotFoundException if a FileNotFoundException occurs * @throws ClassNotFoundException if a ClassNotFoundException occurs * @throws SQLException if an SQLException occurs */ public void checkFixedModifications(PtmSettings modificationProfile, Tag tag, SequenceMatchingPreferences sequenceMatchingPreferences) throws IOException, IllegalArgumentException, InterruptedException, FileNotFoundException, ClassNotFoundException, SQLException { int indexInTag = 0, componentNumber = 0; for (TagComponent tagComponent : tag.getContent()) { componentNumber++; if (tagComponent instanceof AminoAcidPattern) { AminoAcidPattern aminoAcidPattern = (AminoAcidPattern) tagComponent; ArrayList<ModificationMatch> toRemove = new ArrayList<ModificationMatch>(); for (int aa : aminoAcidPattern.getModificationIndexes()) { ArrayList<ModificationMatch> modificationMatches = aminoAcidPattern.getModificationsAt(aa); for (ModificationMatch modMatch : modificationMatches) { if (!modMatch.isVariable()) { toRemove.add(modMatch); } } for (ModificationMatch modMatch : toRemove) { aminoAcidPattern.removeModificationMatch(aa, modMatch); } } for (int aa = 1; aa <= aminoAcidPattern.length(); aa++) { indexInTag++; Double modificationMass = null; for (String fixedModification : modificationProfile.getFixedModifications()) { PTM ptm = getPTM(fixedModification); if (ptm.getType() == PTM.MODAA) { if (tag.getPotentialModificationSites(ptm, sequenceMatchingPreferences).contains(indexInTag)) { if (modificationMass == null) { modificationMass = ptm.getMass(); aminoAcidPattern.addModificationMatch(aa, new ModificationMatch(fixedModification, false, aa)); } else if (modificationMass != ptm.getMass()) { // @TODO: compare against the accuracy throw new IllegalArgumentException("Attempting to put two fixed modifications of different masses (" + modificationMass + ", " + ptm.getMass() + ") at position " + aa + " in pattern " + aminoAcidPattern.asSequence() + " of tag " + tag.asSequence() + "."); } } } else if (ptm.getType() == PTM.MODCP && componentNumber == tag.getContent().size() && aa == aminoAcidPattern.length()) { aminoAcidPattern.addModificationMatch(aa, new ModificationMatch(fixedModification, false, aa)); } else if (ptm.getType() == PTM.MODNP && componentNumber == 1 && aa == 1) { aminoAcidPattern.addModificationMatch(1, new ModificationMatch(fixedModification, false, 1)); } else if (ptm.getType() == PTM.MODCPAA && componentNumber == tag.getContent().size() && aa == aminoAcidPattern.length()) { if (tag.getPotentialModificationSites(ptm, sequenceMatchingPreferences).contains(indexInTag)) { aminoAcidPattern.addModificationMatch(aa, new ModificationMatch(fixedModification, false, aa)); } } else if (ptm.getType() == PTM.MODNPAA && componentNumber == 1 && aa == 1) { if (tag.getPotentialModificationSites(ptm, sequenceMatchingPreferences).contains(1)) { aminoAcidPattern.addModificationMatch(1, new ModificationMatch(fixedModification, false, 1)); } } } } } else if (tagComponent instanceof AminoAcidSequence) { AminoAcidSequence aminoAcidSequence = (AminoAcidSequence) tagComponent; ArrayList<ModificationMatch> toRemove = new ArrayList<ModificationMatch>(); for (int aa : aminoAcidSequence.getModificationIndexes()) { ArrayList<ModificationMatch> modificationMatches = aminoAcidSequence.getModificationsAt(aa); for (ModificationMatch modMatch : modificationMatches) { if (!modMatch.isVariable()) { toRemove.add(modMatch); } } for (ModificationMatch modMatch : toRemove) { aminoAcidSequence.removeModificationMatch(aa, modMatch); } } for (int aa = 1; aa <= aminoAcidSequence.length(); aa++) { indexInTag++; Double modificationMass = null; for (String fixedModification : modificationProfile.getFixedModifications()) { PTM ptm = getPTM(fixedModification); if (ptm.getType() == PTM.MODAA) { if (tag.getPotentialModificationSites(ptm, sequenceMatchingPreferences).contains(indexInTag)) { if (modificationMass == null) { modificationMass = ptm.getMass(); aminoAcidSequence.addModificationMatch(aa, new ModificationMatch(fixedModification, false, aa)); } else if (modificationMass != ptm.getMass()) { // @TODO: compare against the accuracy throw new IllegalArgumentException("Attempting to put two fixed modifications of different masses (" + modificationMass + ", " + ptm.getMass() + ") at position " + aa + " in pattern " + aminoAcidSequence.asSequence() + " of tag " + tag.asSequence() + "."); } } } else if (ptm.getType() == PTM.MODCP && componentNumber == tag.getContent().size() && aa == aminoAcidSequence.length()) { aminoAcidSequence.addModificationMatch(aa, new ModificationMatch(fixedModification, false, aa)); } else if (ptm.getType() == PTM.MODNP && componentNumber == 1 && aa == 1) { aminoAcidSequence.addModificationMatch(1, new ModificationMatch(fixedModification, false, 1)); } else if (ptm.getType() == PTM.MODCPAA && componentNumber == tag.getContent().size() && aa == aminoAcidSequence.length()) { if (tag.getPotentialModificationSites(ptm, sequenceMatchingPreferences).contains(indexInTag)) { aminoAcidSequence.addModificationMatch(aa, new ModificationMatch(fixedModification, false, aa)); } } else if (ptm.getType() == PTM.MODNPAA && componentNumber == 1 && aa == 1) { if (tag.getPotentialModificationSites(ptm, sequenceMatchingPreferences).contains(1)) { aminoAcidSequence.addModificationMatch(1, new ModificationMatch(fixedModification, false, 1)); } } } } } else { indexInTag++; } } } /** * Returns the color used to code the given modification. * * @param modification the name of the given expected modification * @return the corresponding color */ public Color getColor(String modification) { if (!userColors.containsKey(modification)) { setColor(modification, getDefaultColor(modification)); } return userColors.get(modification); } /** * Sets a new color for the given expected modification. * * @param expectedModification the name of the expected modification * @param color the new color */ public void setColor(String expectedModification, Color color) { userColors.put(expectedModification, color); } /** * Returns a default color based on the modification name. * * @param modification the name of the modification * @return a default color. */ public static Color getDefaultColor(String modification) { if (modification.contains("no modification")) { return Color.LIGHT_GRAY; } else if (modification.toLowerCase().contains("phospho")) { return Color.RED; } else if (modification.toLowerCase().contains("pyro")) { return new Color(255, 102, 51); } else if (modification.toLowerCase().contains("ox")) { return Color.BLUE; } else if (modification.toLowerCase().contains("itraq")) { return Color.ORANGE; } else if (modification.toLowerCase().contains("tmt")) { return Color.ORANGE; } else if (modification.toLowerCase().contains("carbamido")) { return Color.LIGHT_GRAY; } else if (modification.toLowerCase().contains("ace")) { return new Color(153, 153, 0); } else if (modification.toLowerCase().contains("glyco")) { return Color.MAGENTA; } else { float r = (float) Math.random(); float g = (float) Math.random(); float b = (float) Math.random(); return new Color(r, g, b); } } /** * Tries to convert a PRIDE PTM to utilities PTM name, and add it to the * modification profile. Unknown PTMs are added to the unknown PTMs * arraylist. * * @param pridePtmName the PRIDE PTM name * @param modProfile the modification profile to add the PTMs to * @param unknownPtms the list of unknown PTMS, updated during this method * @param isFixed if true, the PTM will be added as a fixed modification * @return a pride parameters report as a string (for use in PRIDE Reshake) */ public String convertPridePtm(String pridePtmName, PtmSettings modProfile, ArrayList<String> unknownPtms, boolean isFixed) { String prideParametersReport = ""; // special cases for when multiple ptms are needed if (pridePtmName.equalsIgnoreCase("iTRAQ4plex") || pridePtmName.equalsIgnoreCase("iTRAQ4plex reporter+balance reagent N-acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ4plex reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ4plex-114 reporter+balance reagent N6-acylated lysine") || pridePtmName.equalsIgnoreCase("iTRAQ4plex-114 reporter+balance reagent O4'-acylated tyrosine") || pridePtmName.equalsIgnoreCase("iTRAQ4plex-114 reporter+balance reagent acylated N-terminal") || pridePtmName.equalsIgnoreCase("iTRAQ4plex-114 reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ4plex-116 reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ4plex-117 reporter+balance reagent N6-acylated lysine")) { if (!modProfile.contains("iTRAQ 4-plex of K")) { modProfile.addFixedModification(getPTM("iTRAQ 4-plex of K")); prideParametersReport += "<br>" + "iTRAQ 4-plex of K" + " (assumed fixed)"; } if (!modProfile.contains("iTRAQ 4-plex of N-term")) { modProfile.addFixedModification(getPTM("iTRAQ 4-plex of N-term")); prideParametersReport += "<br>" + "iTRAQ 4-plex of N-term" + " (assumed fixed)"; } if (!modProfile.contains("iTRAQ 4-plex of Y")) { modProfile.addVariableModification(getPTM("iTRAQ 4-plex of Y")); prideParametersReport += "<br>" + "iTRAQ 4-plex of Y" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("iTRAQ8plex") || pridePtmName.equalsIgnoreCase("iTRAQ8plex reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ8plex-113 reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ8plex-114 reporter+balance reagent N6-acylated lysine") || pridePtmName.equalsIgnoreCase("iTRAQ8plex-114 reporter+balance reagent O4'-acylated tyrosine") || pridePtmName.equalsIgnoreCase("iTRAQ8plex-114 reporter+balance reagent acylated N-terminal") || pridePtmName.equalsIgnoreCase("iTRAQ8plex-115 reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ8plex-116 reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("iTRAQ8plex:13C(6)15N(2)")) { if (!modProfile.contains("iTRAQ 8-plex of K")) { modProfile.addFixedModification(getPTM("iTRAQ 8-plex of K")); prideParametersReport += "<br>" + "iTRAQ 8-plex of K" + " (assumed fixed)"; } if (!modProfile.contains("iTRAQ 8-plex of N-term")) { modProfile.addFixedModification(getPTM("iTRAQ 8-plex of N-term")); prideParametersReport += "<br>" + "iTRAQ 8-plex of N-term" + " (assumed fixed)"; } if (!modProfile.contains("iTRAQ 8-plex of Y")) { modProfile.addVariableModification(getPTM("iTRAQ 8-plex of Y")); prideParametersReport += "<br>" + "iTRAQ 8-plex of Y" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("TMT2plex") || pridePtmName.equalsIgnoreCase("TMTduplex")) { if (!modProfile.contains("TMT 2-plex of K")) { modProfile.addFixedModification(getPTM("TMT 2-plex of K")); prideParametersReport += "<br>" + "TMT 2-plex of K" + " (assumed fixed)"; } if (!modProfile.contains("TMT 2-plex of N-term")) { modProfile.addFixedModification(getPTM("TMT 2-plex of N-term")); prideParametersReport += "<br>" + "TMT 2-plex of N-term" + " (assumed fixed)"; } } else if (pridePtmName.equalsIgnoreCase("TMT6plex") || pridePtmName.equalsIgnoreCase("TMT6plex-126 reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("TMT6plex-131 reporter+balance reagent N6-acylated lysine")) { if (!modProfile.contains("TMT 6-plex of K")) { modProfile.addFixedModification(getPTM("TMT 6-plex of K")); prideParametersReport += "<br>" + "TMT 6-plex of K" + " (assumed fixed)"; } if (!modProfile.contains("TMT 6-plex of N-term")) { modProfile.addFixedModification(getPTM("TMT 6-plex of N-term")); prideParametersReport += "<br>" + "TMT 6-plex of N-term" + " (assumed fixed)"; } } else if (pridePtmName.equalsIgnoreCase("TMT10plex") || pridePtmName.equalsIgnoreCase("TMT10plex-126 reporter+balance reagent acylated residue") || pridePtmName.equalsIgnoreCase("TMT10plex-131 reporter+balance reagent N6-acylated lysine")) { if (!modProfile.contains("TMT 10-plex of K")) { modProfile.addFixedModification(getPTM("TMT 10-plex of K")); prideParametersReport += "<br>" + "TMT 10-plex of K" + " (assumed fixed)"; } if (!modProfile.contains("TMT 10-plex of N-term")) { modProfile.addFixedModification(getPTM("TMT 10-plex of N-term")); prideParametersReport += "<br>" + "TMT 10-plex of N-term" + " (assumed fixed)"; } } else if (pridePtmName.equalsIgnoreCase("Phosphorylation") || pridePtmName.equalsIgnoreCase("L-aspartic 4-phosphoric anhydride") || pridePtmName.equalsIgnoreCase("O-phosphorylated residue") || pridePtmName.equalsIgnoreCase("Phospho") || pridePtmName.equalsIgnoreCase("phosphorylated residue")) { if (!modProfile.contains("Phosphorylation of S")) { modProfile.addVariableModification(getPTM("Phosphorylation of S")); prideParametersReport += "<br>" + "Phosphorylation of S" + " (assumed variable)"; } if (!modProfile.contains("Phosphorylation of T")) { modProfile.addVariableModification(getPTM("Phosphorylation of T")); prideParametersReport += "<br>" + "Phosphorylation of T" + " (assumed variable)"; } if (!modProfile.contains("Phosphorylation of Y")) { modProfile.addVariableModification(getPTM("Phosphorylation of Y")); prideParametersReport += "<br>" + "Phosphorylation of Y" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Palmitoylation")) { if (!modProfile.contains("Palmitoylation of C")) { modProfile.addVariableModification(getPTM("Palmitoylation of C")); prideParametersReport += "<br>" + "Palmitoylation of C" + " (assumed variable)"; } if (!modProfile.contains("Palmitoylation of K")) { modProfile.addVariableModification(getPTM("Palmitoylation of K")); prideParametersReport += "<br>" + "Palmitoylation of K" + " (assumed variable)"; } if (!modProfile.contains("Palmitoylation of S")) { modProfile.addVariableModification(getPTM("Palmitoylation of S")); prideParametersReport += "<br>" + "Palmitoylation of S" + " (assumed variable)"; } if (!modProfile.contains("Palmitoylation of T")) { modProfile.addVariableModification(getPTM("Palmitoylation of T")); prideParametersReport += "<br>" + "Palmitoylation of T" + " (assumed variable)"; } if (!modProfile.contains("Palmitoylation of protein N-term")) { modProfile.addVariableModification(getPTM("Palmitoylation of protein N-term")); prideParametersReport += "<br>" + "Palmitoylation of protein N-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Formylation")) { if (!modProfile.contains("Formylation of K")) { modProfile.addVariableModification(getPTM("Formylation of K")); prideParametersReport += "<br>" + "Formylation of K" + " (assumed variable)"; } if (!modProfile.contains("Formylation of S")) { modProfile.addVariableModification(getPTM("Formylation of S")); prideParametersReport += "<br>" + "Formylation of S" + " (assumed variable)"; } if (!modProfile.contains("Formylation of T")) { modProfile.addVariableModification(getPTM("Formylation of T")); prideParametersReport += "<br>" + "Formylation of T" + " (assumed variable)"; } if (!modProfile.contains("Formylation of peptide N-term")) { modProfile.addVariableModification(getPTM("Formylation of peptide N-term")); prideParametersReport += "<br>" + "Formylation of peptide N-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Carbamylation") || pridePtmName.equalsIgnoreCase("carbamoylated residue")) { if (!modProfile.contains("Carbamylation of K")) { modProfile.addVariableModification(getPTM("Carbamylation of K")); prideParametersReport += "<br>" + "Carbamylation of K" + " (assumed variable)"; } if (!modProfile.contains("Carbamilation of protein N-term")) { modProfile.addVariableModification(getPTM("Carbamilation of protein N-term")); prideParametersReport += "<br>" + "Carbamilation of protein N-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("3x(12)C labeled N6-propanoyl-L-lysine")) { if (!modProfile.contains("Propionyl of K light")) { modProfile.addVariableModification(getPTM("Propionyl of K light")); prideParametersReport += "<br>" + "Propionyl of K light" + " (assumed variable)"; } if (!modProfile.contains("Propionyl of peptide N-term light")) { modProfile.addVariableModification(getPTM("Propionyl of peptide N-term light")); prideParametersReport += "<br>" + "Propionyl of peptide N-term light" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("3x(13)C labeled N6-propanoyl-L-lysine")) { if (!modProfile.contains("Propionyl of K heavy")) { modProfile.addVariableModification(getPTM("Propionyl of K heavy")); prideParametersReport += "<br>" + "Propionyl of K heavy" + " (assumed variable)"; } if (!modProfile.contains("Propionyl of peptide N-term heavy")) { modProfile.addVariableModification(getPTM("Propionyl of peptide N-term heavy")); prideParametersReport += "<br>" + "Propionyl of peptide N-term heavy" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("3x(2)H residue methyl ester")) { if (!modProfile.contains("Trideuterated Methyl Ester of D")) { modProfile.addVariableModification(getPTM("Trideuterated Methyl Ester of D")); prideParametersReport += "<br>" + "Trideuterated Methyl Ester of D" + " (assumed variable)"; } if (!modProfile.contains("Trideuterated Methyl Ester of E")) { modProfile.addVariableModification(getPTM("Trideuterated Methyl Ester of E")); prideParametersReport += "<br>" + "Trideuterated Methyl Ester of E" + " (assumed variable)"; } if (!modProfile.contains("Trideuterated Methyl Ester of K")) { modProfile.addVariableModification(getPTM("Trideuterated Methyl Ester of K")); prideParametersReport += "<br>" + "Trideuterated Methyl Ester of K" + " (assumed variable)"; } if (!modProfile.contains("Trideuterated Methyl Ester of R")) { modProfile.addVariableModification(getPTM("Trideuterated Methyl Ester of R")); prideParametersReport += "<br>" + "Trideuterated Methyl Ester of R" + " (assumed variable)"; } if (!modProfile.contains("Trideuterated Methyl Ester of peptide C-term")) { modProfile.addVariableModification(getPTM("Trideuterated Methyl Ester of peptide C-term")); prideParametersReport += "<br>" + "Trideuterated Methyl Ester of peptide C-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("6x(13)C labeled residue")) { if (!modProfile.contains("Arginine 13C6")) { modProfile.addVariableModification(getPTM("Arginine 13C6")); prideParametersReport += "<br>" + "Arginine 13C6" + " (assumed variable)"; } if (!modProfile.contains("Lysine 13C6")) { modProfile.addVariableModification(getPTM("Lysine 13C6")); prideParametersReport += "<br>" + "Lysine 13C6" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Acetyl") || pridePtmName.equalsIgnoreCase("N-acetylated residue") || pridePtmName.equalsIgnoreCase("N-acylated residue") || pridePtmName.equalsIgnoreCase("acetylated residue")) { if (!modProfile.contains("Acetylation of K")) { modProfile.addVariableModification(getPTM("Acetylation of K")); prideParametersReport += "<br>" + "Acetylation of K" + " (assumed variable)"; } if (!modProfile.contains("Acetylation of peptide N-term")) { modProfile.addVariableModification(getPTM("Acetylation of peptide N-term")); prideParametersReport += "<br>" + "Acetylation of peptide N-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("dimethylated residue")) { if (!modProfile.contains("Dimethylation of K")) { modProfile.addVariableModification(getPTM("Dimethylation of K")); prideParametersReport += "<br>" + "Dimethylation of K" + " (assumed variable)"; } if (!modProfile.contains("Dimethylation of R")) { modProfile.addVariableModification(getPTM("Dimethylation of R")); prideParametersReport += "<br>" + "Dimethylation of R" + " (assumed variable)"; } if (!modProfile.contains("Dimethylation of peptide N-term")) { modProfile.addVariableModification(getPTM("Dimethylation of peptide N-term")); prideParametersReport += "<br>" + "Dimethylation of peptide N-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("trimethylated residue")) { if (!modProfile.contains("Trimethylation of K")) { modProfile.addVariableModification(getPTM("Trimethylation of K")); prideParametersReport += "<br>" + "Trimethylation of K" + " (assumed variable)"; } if (!modProfile.contains("Trimethylation of R")) { modProfile.addVariableModification(getPTM("Trimethylation of R")); prideParametersReport += "<br>" + "Trimethylation of R" + " (assumed variable)"; } if (!modProfile.contains("Trimethylation of protein N-term A")) { modProfile.addVariableModification(getPTM("Trimethylation of protein N-term A")); prideParametersReport += "<br>" + "Trimethylation of protein N-term A" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Acetylation")) { if (!modProfile.contains("Acetylation of K")) { modProfile.addVariableModification(getPTM("Acetylation of K")); prideParametersReport += "<br>" + "Acetylation of K" + " (assumed variable)"; } if (!modProfile.contains("Acetylation of peptide N-term")) { modProfile.addVariableModification(getPTM("Acetylation of peptide N-term")); prideParametersReport += "<br>" + "Acetylation of peptide N-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Guanidination")) { if (!modProfile.contains("Guanidination of K")) { modProfile.addVariableModification(getPTM("Guanidination of K")); prideParametersReport += "<br>" + "Guanidination of K" + " (assumed variable)"; } if (!modProfile.contains("Guanidination of peptide N-term")) { modProfile.addVariableModification(getPTM("Guanidination of peptide N-term")); prideParametersReport += "<br>" + "Guanidination of peptide N-term" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Methylthio")) { if (!modProfile.contains("Methylthio of N")) { modProfile.addVariableModification(getPTM("Methylthio of N")); prideParametersReport += "<br>" + "Methylthio of N" + " (assumed variable)"; } if (!modProfile.contains("Methylthio of D")) { modProfile.addVariableModification(getPTM("Methylthio of D")); prideParametersReport += "<br>" + "Methylthio of D" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Sulfo") || pridePtmName.equalsIgnoreCase("sulfated residue")) { if (!modProfile.contains("Sulfonation of Y")) { modProfile.addVariableModification(getPTM("Sulfonation of Y")); prideParametersReport += "<br>" + "Sulfonation of Y" + " (assumed variable)"; } if (!modProfile.contains("Sulfonation of S")) { modProfile.addVariableModification(getPTM("Sulfonation of S")); prideParametersReport += "<br>" + "Sulfonation of S" + " (assumed variable)"; } if (!modProfile.contains("Sulfonation of T")) { modProfile.addVariableModification(getPTM("Sulfonation of T")); prideParametersReport += "<br>" + "Sulfonation of T" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Deamination") || pridePtmName.equalsIgnoreCase("Deamidated") || pridePtmName.equalsIgnoreCase("deamidated L-glutamine") || pridePtmName.equalsIgnoreCase("deamidated residue") || pridePtmName.equalsIgnoreCase("deaminated residue")) { if (!modProfile.contains("Deamidation of N")) { modProfile.addVariableModification(getPTM("Deamidation of N")); prideParametersReport += "<br>" + "Deamidation of N" + " (assumed variable)"; } if (!modProfile.contains("Deamidation of Q")) { modProfile.addVariableModification(getPTM("Deamidation of Q")); prideParametersReport += "<br>" + "Deamidation of Q" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("Dioxidation")) { if (!modProfile.contains("Dioxidation of M")) { modProfile.addVariableModification(getPTM("Dioxidation of M")); prideParametersReport += "<br>" + "Dioxidation of M" + " (assumed variable)"; } if (!modProfile.contains("Dioxidation of W")) { modProfile.addVariableModification(getPTM("Dioxidation of W")); prideParametersReport += "<br>" + "Dioxidation of W" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("dehydrated residue") || pridePtmName.equalsIgnoreCase("Dehydratation")) { if (!modProfile.contains("Dehydration of S")) { modProfile.addVariableModification(getPTM("Dehydration of S")); prideParametersReport += "<br>" + "Dehydration of S" + " (assumed variable)"; } if (!modProfile.contains("Dehydration of T")) { modProfile.addVariableModification(getPTM("Dehydration of T")); prideParametersReport += "<br>" + "Dehydration of T" + " (assumed variable)"; } } else if (pridePtmName.equalsIgnoreCase("No PTMs are included in the dataset")) { // ignore } else { // single ptm mapping String utilitiesPtmName = convertPridePtmToUtilitiesPtm(pridePtmName); if (utilitiesPtmName != null) { if (!modProfile.contains(utilitiesPtmName)) { if (isFixed) { modProfile.addFixedModification(getPTM(utilitiesPtmName)); prideParametersReport += "<br>" + utilitiesPtmName + " (assumed fixed)"; } else { modProfile.addVariableModification(getPTM(utilitiesPtmName)); prideParametersReport += "<br>" + utilitiesPtmName + " (assumed variable)"; } } } else if (!unknownPtms.contains(pridePtmName)) { unknownPtms.add(pridePtmName); } } return prideParametersReport; } /** * Tries to convert a PRIDE PTM name to utilities PTM name. * * @param pridePtmName the PRIDE PTM name * @return the utilities PTM name, or null if there is no mapping */ private String convertPridePtmToUtilitiesPtm(String pridePtmName) { if (pridePtmName.equalsIgnoreCase("Carbamidomethyl") || pridePtmName.equalsIgnoreCase("S-carboxamidomethyl-L-cysteine") || pridePtmName.equalsIgnoreCase("iodoacetamide - site C") || pridePtmName.equalsIgnoreCase("iodoacetamide -site C") || pridePtmName.equalsIgnoreCase("iodoacetamide derivatized residue") || pridePtmName.equalsIgnoreCase("Iodoacetamide derivative")) { return "Carbamidomethylation of C"; } else if (pridePtmName.equalsIgnoreCase("Oxidation") || pridePtmName.equalsIgnoreCase("monohydroxylated residue") || pridePtmName.equalsIgnoreCase("oxidized residue")) { return "Oxidation of M"; } else if (pridePtmName.equalsIgnoreCase("Amidation")) { return "Amidation of the peptide C-term"; } else if (pridePtmName.equalsIgnoreCase("Carboxymethyl") || pridePtmName.equalsIgnoreCase("S-carboxymethyl-L-cysteine") || pridePtmName.equalsIgnoreCase("iodoacetic acid derivatized residue")) { return "Carboxymethylation of C"; } else if (pridePtmName.equalsIgnoreCase("Farnesylation")) { return "Farnesylation of C"; } else if (pridePtmName.equalsIgnoreCase("Geranyl-geranyl")) { return "Geranyl-geranyl of C"; } else if (pridePtmName.equalsIgnoreCase("Homoserine")) { return "Homoserine of peptide C-term M"; } else if (pridePtmName.equalsIgnoreCase("Homoserine lactone")) { return "Homoserine lactone of peptide C-term M"; } else if (pridePtmName.equalsIgnoreCase("ICAT-C") || pridePtmName.equalsIgnoreCase("Applied Biosystems cleavable ICAT(TM) light")) { return "ICAT-O"; } else if (pridePtmName.equalsIgnoreCase("ICAT-C:13C(9)") || pridePtmName.equalsIgnoreCase("Applied Biosystems cleavable ICAT(TM) heavy")) { return "ICAT-9"; } else if (pridePtmName.equalsIgnoreCase("Lipoyl")) { return "Lipoyl of K"; } else if (pridePtmName.equalsIgnoreCase("NIPCAM(C)")) { return "NIPCAM of C"; } else if (pridePtmName.equalsIgnoreCase("Phosphopantetheine")) { return "phosphopantetheine s"; } else if (pridePtmName.equalsIgnoreCase("Propionamide(C)") || pridePtmName.equalsIgnoreCase("Acrylamide adduct")) { return "Propionamide of C"; } else if (pridePtmName.equalsIgnoreCase("Pyridylethyl")) { return "Pyridylethyl of C"; } else if (pridePtmName.equalsIgnoreCase("(18)O label at both C-terminal oxygens")) { return "18O(2) of peptide C-term"; } else if (pridePtmName.equalsIgnoreCase("(18)O monosubstituted residue")) { return "18O(1) of peptide C-term"; } else if (pridePtmName.equalsIgnoreCase("(4,4,5,5-(2)H4)-L-lysine")) { return "Lysine 2H4"; } else if (pridePtmName.equalsIgnoreCase("2-pyrrolidone-5-carboxylic acid (Gln)") || pridePtmName.equalsIgnoreCase("Ammonia-loss")) { return "Pyrolidone from Q"; } else if (pridePtmName.equalsIgnoreCase("2-pyrrolidone-5-carboxylic acid (Glu)") || pridePtmName.equalsIgnoreCase("Glu->pyro-Glu")) { return "Pyrolidone from E"; } else if (pridePtmName.equalsIgnoreCase("3-hydroxy-L-proline")) { return "Oxidation of P"; } else if (pridePtmName.equalsIgnoreCase("3x(2)H labeled L-aspartic acid 4-methyl ester")) { return "Trideuterated Methyl Ester of D"; } else if (pridePtmName.equalsIgnoreCase("4x(2)H labeled alpha-dimethylamino N-terminal residue")) { return "Dimethylation of peptide N-term 2H(4)"; } else if (pridePtmName.equalsIgnoreCase("4x(2)H labeled dimethylated L-lysine")) { return "Dimethylation of K 2H(4)"; } else if (pridePtmName.equalsIgnoreCase("5-methyl-L-arginine")) { return "Methylation of R"; } else if (pridePtmName.equalsIgnoreCase("6x(13)C labeled L-arginine")) { return "Arginine 13C6"; } else if (pridePtmName.equalsIgnoreCase("6x(13)C,4x(15)N labeled L-arginine")) { return "Arginine 13C6 15N4"; } else if (pridePtmName.equalsIgnoreCase("6x(13)C labeled L-lysine")) { return "Lysine 13C6"; } else if (pridePtmName.equalsIgnoreCase("6x(13)C,2x(15)N labeled L-lysine")) { return "Lysine 13C6 15N2"; } else if (pridePtmName.equalsIgnoreCase("L-aspartic acid 4-methyl ester")) { return "Methylation of D"; } else if (pridePtmName.equalsIgnoreCase("L-cysteic acid (L-cysteine sulfonic acid)")) { return "Oxidation of C"; } else if (pridePtmName.equalsIgnoreCase("L-cysteine glutathione disulfide")) { return "Glutathione of C"; } else if (pridePtmName.equalsIgnoreCase("L-cysteine methyl disulfide") || pridePtmName.equalsIgnoreCase("methyl methanethiosulfonate")) { return "Methylthio of C"; } else if (pridePtmName.equalsIgnoreCase("L-cystine (cross-link)")) { return "Didehydro of T"; } else if (pridePtmName.equalsIgnoreCase("L-glutamic acid 5-methyl ester (Glu)") || pridePtmName.equalsIgnoreCase("methylated glutamic acid")) { return "Methylation of E"; } else if (pridePtmName.equalsIgnoreCase("L-homoarginine")) { return "Guanidination of K"; } else if (pridePtmName.equalsIgnoreCase("L-methionine (R)-sulfoxide") || pridePtmName.equalsIgnoreCase("L-methionine (S)-sulfoxide") || pridePtmName.equalsIgnoreCase("L-methionine sulfoxide")) { return "Oxidation of M"; } else if (pridePtmName.equalsIgnoreCase("L-methionine sulfone")) { return "Dioxidation of M"; } else if (pridePtmName.equalsIgnoreCase("N-acetyl-L-asparagine") || pridePtmName.equalsIgnoreCase("N-acetyl-L-cysteine") || pridePtmName.equalsIgnoreCase("N-acetyl-L-glutamic acid") || pridePtmName.equalsIgnoreCase("N-acetyl-L-isoleucine") || pridePtmName.equalsIgnoreCase("N-acetyl-L-serine") || pridePtmName.equalsIgnoreCase("N-acetyl-L-tyrosine") || pridePtmName.equalsIgnoreCase("N2-acetyl-L-tryptophan") || pridePtmName.equalsIgnoreCase("alpha-amino acetylated residue")) { return "Acetylation of protein N-term"; } else if (pridePtmName.equalsIgnoreCase("N-acetylated L-lysine") || pridePtmName.equalsIgnoreCase("N6-acetyl-L-lysine")) { return "Acetylation of K"; } else if (pridePtmName.equalsIgnoreCase("N-ethylmaleimide derivatized cysteine")) { return "Nethylmaleimide of C"; } else if (pridePtmName.equalsIgnoreCase("N-formyl-L-methionine")) { return "FormylMet of protein N-term"; } else if (pridePtmName.equalsIgnoreCase("N-formylated residue")) { return "Formylation of peptide N-term"; // note: could also be the other formylations } else if (pridePtmName.equalsIgnoreCase("N-methyl-L-serine")) { return "Methylation of S"; } else if (pridePtmName.equalsIgnoreCase("N6,N6-dimethyl-L-lysine")) { return "Dimethylation of K"; } else if (pridePtmName.equalsIgnoreCase("N6-formyl-L-lysine")) { return "Formylation of K"; } else if (pridePtmName.equalsIgnoreCase("N6-methyl-L-lysine") || pridePtmName.equalsIgnoreCase("methylated lysine") || pridePtmName.equalsIgnoreCase("monomethylated L-lysine")) { return "Methylation of K"; } else if (pridePtmName.equalsIgnoreCase("N6-propanoyl-L-lysine")) { return "Propionyl of K light"; } else if (pridePtmName.equalsIgnoreCase("O-(N-acetylamino)glucosyl-L-serine")) { return "HexNAc of S"; } else if (pridePtmName.equalsIgnoreCase("O-(N-acetylamino)glucosyl-L-threonine")) { return "HexNAc of T"; } else if (pridePtmName.equalsIgnoreCase("O-phospho-L-serine")) { return "Phosphorylation of S"; } else if (pridePtmName.equalsIgnoreCase("O-phospho-L-threonine")) { return "Phosphorylation of T"; } else if (pridePtmName.equalsIgnoreCase("O4'-phospho-L-tyrosine")) { return "Phosphorylation of Y"; } else if (pridePtmName.equalsIgnoreCase("S-carboxamidoethyl-L-cysteine")) { return "Propionamide of C"; } else if (pridePtmName.equalsIgnoreCase("S-methyl-L-cysteine")) { return "Methylation of C"; } else if (pridePtmName.equalsIgnoreCase("alpha-amino dimethylated residue")) { return "Dimethylation of N-term"; } else if (pridePtmName.equalsIgnoreCase("amidated residue")) { return "Amidation of the peptide C-term"; } else if (pridePtmName.equalsIgnoreCase("deamidated L-asparagine") || pridePtmName.equalsIgnoreCase("deglycosylated asparagine")) { return "Deamidation of N"; } else if (pridePtmName.equalsIgnoreCase("dihydroxylated residue - site W")) { return "Dioxidation of W"; } else if (pridePtmName.equalsIgnoreCase("diiodinated residue")) { return "Diiodination of Y"; } else if (pridePtmName.equalsIgnoreCase("hydroxylated lysine") || pridePtmName.equalsIgnoreCase("monohydroxylated lysine")) { return "Oxidation of K"; } else if (pridePtmName.equalsIgnoreCase("iodoacetamide -site E") || pridePtmName.equalsIgnoreCase("iodoacetamide - site E")) { return "Carbamidomethylat\"iodoacetamide -site E\"ion of E"; } else if (pridePtmName.equalsIgnoreCase("iodoacetamide N6-derivatized lysine")) { return "Carbamidomethylation of K"; } else if (pridePtmName.equalsIgnoreCase("monomethylated L-aspartic acid")) { return "Methylation of D"; } else if (pridePtmName.equalsIgnoreCase("thioacylation of primary amines - site N-term")) { return "Thioacyl of peptide N-term"; } else if (pridePtmName.equalsIgnoreCase("ubiquitination signature dipeptidyl lysine")) { return "Ubiquitination of K"; } else if (pridePtmName.equalsIgnoreCase("Label:13C(6)15N(2)")) { return "Lysine 13C(6) 15N(2)"; } else { return null; } } /** * Returns the folder where the factory is saved. * * @return the folder where the factory is saved */ public static String getSerializationFolder() { return SERIALIZATION_FILE_FOLDER; } /** * Sets the folder where the factory is saved. * * @param serializationFolder the folder where the factory is saved */ public static void setSerializationFolder(String serializationFolder) { PTMFactory.SERIALIZATION_FILE_FOLDER = serializationFolder; } /** * Sets the default modifications. */ private void setDefaultModifications() { // Acetylation of K AtomChain atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0)); AtomChain atomChainRemoved = null; AminoAcidPattern aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); String ptmName = "Acetylation of K"; PTM ptm = new PTM(PTM.MODAA, ptmName, "ace", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:1", "Acetyl", null)); ptm.addReporterIon(ReporterIon.ACE_K_126); ptm.addReporterIon(ReporterIon.ACE_K_143); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Acetylation of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Acetylation of peptide N-term"; // note: if name changed also change in TandemProcessBuilder ptm = new PTM(PTM.MODNP, ptmName, "ace", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:1", "Acetyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Acetylation of protein N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Acetylation of protein N-term"; // note: if name changed also change in TandemProcessBuilder of SearchGUI and PsmImporter of PeptideShaker ptm = new PTM(PTM.MODN, ptmName, "ace", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:1", "Acetyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Carbamidomethylation of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Carbamidomethylation of C"; ptm = new PTM(PTM.MODAA, ptmName, "cmm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:4", "Carbamidomethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Carbamidomethylation of E atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("E"); ptmName = "Carbamidomethylation of E"; ptm = new PTM(PTM.MODAA, ptmName, "cmm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:4", "Carbamidomethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Carbamidomethylation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Carbamidomethylation of K"; ptm = new PTM(PTM.MODAA, ptmName, "cmm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:4", "Carbamidomethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Oxidation of M atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("M"); ptmName = "Oxidation of M"; ptm = new PTM(PTM.MODAA, ptmName, "ox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:35", "Oxidation", null)); ptm.addNeutralLoss(NeutralLoss.CH4OS); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Oxidation of P atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("P"); ptmName = "Oxidation of P"; ptm = new PTM(PTM.MODAA, ptmName, "ox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:35", "Oxidation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Oxidation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Oxidation of K"; ptm = new PTM(PTM.MODAA, ptmName, "ox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:35", "Oxidation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Oxidation of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Oxidation of C"; ptm = new PTM(PTM.MODAA, ptmName, "ox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:35", "Oxidation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dioxydation of M atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("M"); ptmName = "Dioxidation of M"; ptm = new PTM(PTM.MODAA, ptmName, "diox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:425", "Dioxidation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dioxydation of M atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("W"); ptmName = "Dioxidation of W"; ptm = new PTM(PTM.MODAA, ptmName, "diox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:425", "Dioxidation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trioxidation of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Trioxidation of C"; ptm = new PTM(PTM.MODAA, ptmName, "triox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:345", "Trioxidation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Phosphorylation of S atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0)); atomChainAdded.append(new AtomImpl(Atom.P, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "Phosphorylation of S"; ptm = new PTM(PTM.MODAA, ptmName, "p", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:21", "Phospho", null)); ptm.addNeutralLoss(NeutralLoss.H3PO4); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Phosphorylation of T atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0)); atomChainAdded.append(new AtomImpl(Atom.P, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "Phosphorylation of T"; ptm = new PTM(PTM.MODAA, ptmName, "p", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:21", "Phospho", null)); ptm.addNeutralLoss(NeutralLoss.H3PO4); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Phosphorylation of Y atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0)); atomChainAdded.append(new AtomImpl(Atom.P, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("Y"); ptmName = "Phosphorylation of Y"; ptm = new PTM(PTM.MODAA, ptmName, "p", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:21", "Phospho", null)); ptm.addNeutralLoss(NeutralLoss.HPO3); ptm.addReporterIon(ReporterIon.PHOSPHO_Y); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Arg6 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 6); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("R"); ptmName = "Arginine 13C(6)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:188", "Label:13C(6)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Arg10 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.N, 1), 4); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 6); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 4); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("R"); ptmName = "Arginine 13C(6) 15N(4)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:267", "Label:13C(6)15N(4)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Lys4 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 4); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 4); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Lysine 2H(4)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:481", "Label:2H(4)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Lys6 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 6); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Lysine 13C(6)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:188", "Label:13C(6)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Lys8 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.N, 1), 2); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 6); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 2); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Lysine 13C(6) 15N(2)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:259", "Label:13C(6)15N(2)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Pro5 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 5); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 5); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("P"); ptmName = "Proline 13C(5)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:772", "Label:13C(5)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // 4-Hydroxyloproline atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 5); atomChainAdded.append(new AtomImpl(Atom.H, 0), 9); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("P"); ptmName = "4-Hydroxyproline"; ptm = new PTM(PTM.MODAA, ptmName, "hydroxy", atomChainAdded, atomChainRemoved, aminoAcidPattern); //ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:", "", null)); // @TODO: add cv term... defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Leu7 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 6); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("L"); ptmName = "Leucine 13C(6) 15N(1)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:695", "Label:13C(6)15N(1)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Ile7 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 6); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("I"); ptmName = "Isoleucine 13C(6) 15N(1)"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:695", "Label:13C(6)15N(1)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Label of K 2H4 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 4); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 4); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Label of K 2H(4)"; ptm = new PTM(PTM.MODAA, ptmName, "2H(4)", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:481", "Label:2H(4)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of K 2H6 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 6); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Dimethylation of K 2H(6)"; ptm = new PTM(PTM.MODAA, ptmName, "dimeth6", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:1291", "Dimethyl:2H(6)", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of peptide N-term 2H4 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 1), 4); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Dimethylation of peptide N-term 2H(4)"; ptm = new PTM(PTM.MODNP, ptmName, "dimeth4", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:199 ", "Dimethyl:2H(4)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of peptide N-term 2H6 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 1), 6); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); aminoAcidPattern = null; ptmName = "Dimethylation of peptide N-term 2H(6)"; ptm = new PTM(PTM.MODNP, ptmName, "dimeth6", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD: 1291", "Dimethyl:2H(6)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of peptide N-term 2H(6) 13C(2) atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 2); atomChainAdded.append(new AtomImpl(Atom.H, 1), 6); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); aminoAcidPattern = null; ptmName = "Dimethylation of peptide N-term 2H(6) 13C(2)"; ptm = new PTM(PTM.MODNP, ptmName, "dimeth8", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:330", " Dimethyl:2H(6)13C(2)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of K 2H(6) 13C(2) atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 2); atomChainAdded.append(new AtomImpl(Atom.H, 1), 6); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Dimethylation of K 2H(6) 13C(2)"; ptm = new PTM(PTM.MODAA, ptmName, "dimeth8", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:330", " Dimethyl:2H(6)13C(2)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // 18O(2) of peptide C-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 2), 2); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.O, 0), 2); aminoAcidPattern = null; ptmName = "18O(2) of peptide C-term"; ptm = new PTM(PTM.MODCP, ptmName, "18O", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD: 193", "Label:18O(2)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // 18O(1) of peptide C-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 2), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.O, 0), 1); aminoAcidPattern = null; ptmName = "18O(1) of peptide C-term"; ptm = new PTM(PTM.MODCP, ptmName, "18O", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:258", "Label:18O(1)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICAT-0 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 10); atomChainAdded.append(new AtomImpl(Atom.H, 0), 17); atomChainAdded.append(new AtomImpl(Atom.N, 0), 3); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "ICAT-O"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:105", "ICAT-C", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICAT-9 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 9); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.H, 0), 17); atomChainAdded.append(new AtomImpl(Atom.N, 0), 3); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "ICAT-9"; ptm = new PTM(PTM.MODAA, ptmName, "*", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:106", "ICAT-C:13C(9)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL0 of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "ICPL0 of K"; ptm = new PTM(PTM.MODAA, ptmName, "icpl0", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:365", "ICPL", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL0 of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "ICPL0 of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "icpl0", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:365", "ICPL", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL4 of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 6); atomChainAdded.append(new AtomImpl(Atom.H, 1), 4); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "ICPL4 of K"; ptm = new PTM(PTM.MODAA, ptmName, "icpl4", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:687", "ICPL:2H(4)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL4 of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 6); atomChainAdded.append(new AtomImpl(Atom.H, 1), 4); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = null; ptmName = "ICPL4 of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "icpl4", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:687", "ICPL:2H(4)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL6 of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "ICPL6 of K"; ptm = new PTM(PTM.MODAA, ptmName, "icpl6", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:364", "ICPL:13C(6)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL6 of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "ICPL6 of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "icpl6", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:364", "ICPL:13C(6)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL10 of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 1), 4); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "ICPL10 of K"; ptm = new PTM(PTM.MODAA, ptmName, "icpl10", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:866", "ICPL:13C(6)2H(4)", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // ICPL10 of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 1), 4); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = null; ptmName = "ICPL10 of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "icpl10", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:866", "ICPL:13C(6)2H(4)", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // mTRAQ of K light atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 7); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "mTRAQ of K light"; ptm = new PTM(PTM.MODAA, ptmName, "mTRAQ0", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD: 888 ", "mTRAQ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // mTRAQ of peptide N-term light atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 7); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "mTRAQ of peptide N-term light"; ptm = new PTM(PTM.MODNP, ptmName, "mTRAQ0", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:888", "mTRAQ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // mTRAQ of K 13C3 15N atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 1), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "mTRAQ of K 13C(3) 15N"; ptm = new PTM(PTM.MODAA, ptmName, "mTRAQ4", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:889", "mTRAQ:13C(3)15N(1) ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // mTRAQ of peptide N-term 13C3 15N atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 1), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "mTRAQ of peptide N-term 13C(3) 15N"; ptm = new PTM(PTM.MODNP, ptmName, "mTRAQ4", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:889", "mTRAQ:13C(3)15N(1) ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // mTRAQ of K 13C6 15N2 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 1), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "mTRAQ of 13C(6) 15N(2)"; ptm = new PTM(PTM.MODAA, ptmName, "mTRAQ8", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:1302", "mTRAQ:13C(6)15N(2) ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // mTRAQ of peptide N-term 13C3 15N atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 1), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "mTRAQ of peptide N-term 13C(6) 15N(2)"; ptm = new PTM(PTM.MODNP, ptmName, "mTRAQ8", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:1302", "mTRAQ:13C(6)15N(2) ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // iTRAQ 4-plex of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 1), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "iTRAQ 4-plex of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "iTRAQ", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:214", "iTRAQ4plex", null)); // @TODO: check cv term and mass!!! ptm.addReporterIon(ReporterIon.iTRAQ4Plex_114); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_115); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_116); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_117); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // iTRAQ 4-plex of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 1), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "iTRAQ 4-plex of K"; ptm = new PTM(PTM.MODAA, ptmName, "iTRAQ", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:214", "iTRAQ4plex", null)); // @TODO: check cv term and mass!!! ptm.addReporterIon(ReporterIon.iTRAQ4Plex_114); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_115); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_116); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_117); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // iTRAQ 4-plex of Y atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 1), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("Y"); ptmName = "iTRAQ 4-plex of Y"; ptm = new PTM(PTM.MODAA, ptmName, "iTRAQ", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:214", "iTRAQ4plex", null)); // @TODO: check cv term and mass!!! ptm.addReporterIon(ReporterIon.iTRAQ4Plex_114); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_115); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_116); ptm.addReporterIon(ReporterIon.iTRAQ4Plex_117); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // iTRAQ 8-plex of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 24); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.N, 1), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "iTRAQ 8-plex of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "iTRAQ", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:730", "iTRAQ8plex", null)); // note: does not have a PSI name, using interim name ptm.addReporterIon(ReporterIon.iTRAQ8Plex_113); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_114); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_115); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_116); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_117); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_118); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_119); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_121); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // iTRAQ 8-plex of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 24); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.N, 1), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "iTRAQ 8-plex of K"; ptm = new PTM(PTM.MODAA, ptmName, "iTRAQ", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:730", "iTRAQ8plex", null)); // note: does not have a PSI name, using interim name ptm.addReporterIon(ReporterIon.iTRAQ8Plex_113); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_114); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_115); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_116); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_117); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_118); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_119); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_121); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // iTRAQ 8-plex of Y atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.C, 1), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 24); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.N, 1), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("Y"); ptmName = "iTRAQ 8-plex of Y"; ptm = new PTM(PTM.MODAA, ptmName, "iTRAQ", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:730", "iTRAQ8plex", null)); // note: does not have a PSI name, using interim name ptm.addReporterIon(ReporterIon.iTRAQ8Plex_113); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_114); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_115); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_116); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_117); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_118); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_119); ptm.addReporterIon(ReporterIon.iTRAQ8Plex_121); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // TMT 2-plex of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 11); atomChainAdded.append(new AtomImpl(Atom.C, 1), 1); atomChainAdded.append(new AtomImpl(Atom.H, 0), 20); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "TMT 2-plex of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "TMT", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:738", "TMT2plex", null)); // note: does not have a PSI name, using interim name ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127C); ptm.addReporterIon(ReporterIon.TMT_126_ETD); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // TMT 2-plex of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 11); atomChainAdded.append(new AtomImpl(Atom.C, 1), 1); atomChainAdded.append(new AtomImpl(Atom.H, 0), 20); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "TMT 2-plex of K"; ptm = new PTM(PTM.MODAA, ptmName, "TMT", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:738", "TMT2plex", null)); // note: does not have a PSI name, using interim name ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127C); ptm.addReporterIon(ReporterIon.TMT_126_ETD); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // TMT 6-plex of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.C, 1), 4); atomChainAdded.append(new AtomImpl(Atom.H, 0), 20); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "TMT 6-plex of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "TMT", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:737", "TMT6plex", null)); // note: does not have a PSI name, using interim name ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127N); ptm.addReporterIon(ReporterIon.TMT_128C); ptm.addReporterIon(ReporterIon.TMT_129N); ptm.addReporterIon(ReporterIon.TMT_130C); ptm.addReporterIon(ReporterIon.TMT_131); ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127N); ptm.addReporterIon(ReporterIon.TMT_128C); ptm.addReporterIon(ReporterIon.TMT_129N); ptm.addReporterIon(ReporterIon.TMT_130C); ptm.addReporterIon(ReporterIon.TMT_131); ptm.addReporterIon(ReporterIon.TMT_126_ETD); ptm.addReporterIon(ReporterIon.TMT_127N_ETD); ptm.addReporterIon(ReporterIon.TMT_128C_ETD); ptm.addReporterIon(ReporterIon.TMT_129N_ETD); ptm.addReporterIon(ReporterIon.TMT_130C_ETD); ptm.addReporterIon(ReporterIon.TMT_131_ETD); ptm.addReporterIon(ReporterIon.TMT_126_ETD); ptm.addReporterIon(ReporterIon.TMT_127N_ETD); ptm.addReporterIon(ReporterIon.TMT_128C_ETD); ptm.addReporterIon(ReporterIon.TMT_129N_ETD); ptm.addReporterIon(ReporterIon.TMT_130C_ETD); ptm.addReporterIon(ReporterIon.TMT_131_ETD); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // TMT 6-plex of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.C, 1), 4); atomChainAdded.append(new AtomImpl(Atom.H, 0), 20); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "TMT 6-plex of K"; ptm = new PTM(PTM.MODAA, ptmName, "TMT", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:737", "TMT6plex", null)); // note: does not have a PSI name, using interim name ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127N); ptm.addReporterIon(ReporterIon.TMT_128C); ptm.addReporterIon(ReporterIon.TMT_129N); ptm.addReporterIon(ReporterIon.TMT_130C); ptm.addReporterIon(ReporterIon.TMT_131); ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127N); ptm.addReporterIon(ReporterIon.TMT_128C); ptm.addReporterIon(ReporterIon.TMT_129N); ptm.addReporterIon(ReporterIon.TMT_130C); ptm.addReporterIon(ReporterIon.TMT_131); ptm.addReporterIon(ReporterIon.TMT_126_ETD); ptm.addReporterIon(ReporterIon.TMT_127N_ETD); ptm.addReporterIon(ReporterIon.TMT_128C_ETD); ptm.addReporterIon(ReporterIon.TMT_129N_ETD); ptm.addReporterIon(ReporterIon.TMT_130C_ETD); ptm.addReporterIon(ReporterIon.TMT_131_ETD); ptm.addReporterIon(ReporterIon.TMT_126_ETD); ptm.addReporterIon(ReporterIon.TMT_127N_ETD); ptm.addReporterIon(ReporterIon.TMT_128C_ETD); ptm.addReporterIon(ReporterIon.TMT_129N_ETD); ptm.addReporterIon(ReporterIon.TMT_130C_ETD); ptm.addReporterIon(ReporterIon.TMT_131_ETD); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // TMT 10-plex of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.C, 1), 4); atomChainAdded.append(new AtomImpl(Atom.H, 0), 20); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "TMT 10-plex of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "TMT", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:737", "TMT6plex", null)); // note: "PSI: Alt. Description: Also applies to TMT10plex", i.e., no term for 10-plex ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127C); ptm.addReporterIon(ReporterIon.TMT_127N); ptm.addReporterIon(ReporterIon.TMT_128C); ptm.addReporterIon(ReporterIon.TMT_128N); ptm.addReporterIon(ReporterIon.TMT_129C); ptm.addReporterIon(ReporterIon.TMT_129N); ptm.addReporterIon(ReporterIon.TMT_130C); ptm.addReporterIon(ReporterIon.TMT_130N); ptm.addReporterIon(ReporterIon.TMT_131); ptm.addReporterIon(ReporterIon.TMT_126_ETD); ptm.addReporterIon(ReporterIon.TMT_127C_ETD); ptm.addReporterIon(ReporterIon.TMT_127N_ETD); ptm.addReporterIon(ReporterIon.TMT_128C_ETD); ptm.addReporterIon(ReporterIon.TMT_128N_ETD); ptm.addReporterIon(ReporterIon.TMT_129C_ETD); ptm.addReporterIon(ReporterIon.TMT_129N_ETD); ptm.addReporterIon(ReporterIon.TMT_130C_ETD); ptm.addReporterIon(ReporterIon.TMT_130N_ETD); ptm.addReporterIon(ReporterIon.TMT_131_ETD); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // TMT 10-plex of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.C, 1), 4); atomChainAdded.append(new AtomImpl(Atom.H, 0), 20); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 1), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "TMT 10-plex of K"; ptm = new PTM(PTM.MODAA, ptmName, "TMT", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:737", "TMT6plex", null)); // note: "PSI: Alt. Description: Also applies to TMT10plex", i.e., no term for 10-plex ptm.addReporterIon(ReporterIon.TMT_126); ptm.addReporterIon(ReporterIon.TMT_127C); ptm.addReporterIon(ReporterIon.TMT_127N); ptm.addReporterIon(ReporterIon.TMT_128C); ptm.addReporterIon(ReporterIon.TMT_128N); ptm.addReporterIon(ReporterIon.TMT_129C); ptm.addReporterIon(ReporterIon.TMT_129N); ptm.addReporterIon(ReporterIon.TMT_130C); ptm.addReporterIon(ReporterIon.TMT_130N); ptm.addReporterIon(ReporterIon.TMT_131); ptm.addReporterIon(ReporterIon.TMT_126_ETD); ptm.addReporterIon(ReporterIon.TMT_127C_ETD); ptm.addReporterIon(ReporterIon.TMT_127N_ETD); ptm.addReporterIon(ReporterIon.TMT_128C_ETD); ptm.addReporterIon(ReporterIon.TMT_128N_ETD); ptm.addReporterIon(ReporterIon.TMT_129C_ETD); ptm.addReporterIon(ReporterIon.TMT_129N_ETD); ptm.addReporterIon(ReporterIon.TMT_130C_ETD); ptm.addReporterIon(ReporterIon.TMT_130N_ETD); ptm.addReporterIon(ReporterIon.TMT_131_ETD); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Ubiquitination of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 4); atomChainAdded.append(new AtomImpl(Atom.H, 0), 6); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Ubiquitination of K"; ptm = new PTM(PTM.MODAA, ptmName, "ub", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:121", "GG", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0)); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Methylation of K"; ptm = new PTM(PTM.MODAA, ptmName, "meth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:34", "Methyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylation of R atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0)); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("R"); ptmName = "Methylation of R"; ptm = new PTM(PTM.MODAA, ptmName, "meth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:34", "Methyl", null)); ptm.addReporterIon(ReporterIon.METHYL_R_70); ptm.addReporterIon(ReporterIon.METHYL_R_87); ptm.addReporterIon(ReporterIon.METHYL_R_112); ptm.addReporterIon(ReporterIon.METHYL_R_115); ptm.addReporterIon(ReporterIon.METHYL_R_143); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylation of E atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("E"); ptmName = "Methylation of E"; ptm = new PTM(PTM.MODAA, ptmName, "meth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:34", "Methyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylation of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Methylation of C"; ptm = new PTM(PTM.MODAA, ptmName, "meth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:34", "Methyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylation of D atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("D"); ptmName = "Methylation of D"; ptm = new PTM(PTM.MODAA, ptmName, "meth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:34", "Methyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylation of S atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "Methylation of S"; ptm = new PTM(PTM.MODAA, ptmName, "meth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:34", "Methyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Dimethylation of K"; ptm = new PTM(PTM.MODAA, ptmName, "dimeth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:36", "Dimethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Dimethylation of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "dimeth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:36", "Dimethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dimethylation of R atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("R"); ptmName = "Dimethylation of R"; ptm = new PTM(PTM.MODAA, ptmName, "dimeth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:36", "Dimethyl", null)); ptm.addReporterIon(ReporterIon.DI_METHYL_R_112); ptm.addReporterIon(ReporterIon.DI_METHYL_R_115); ptm.addReporterIon(ReporterIon.DI_METHYL_R_157); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trimethylation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 6); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Trimethylation of K"; ptm = new PTM(PTM.MODAA, ptmName, "trimeth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:37", "Trimethyl", null)); ptm.addNeutralLoss(NeutralLoss.C3H9N); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trimethylation of R atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 6); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("R"); ptmName = "Trimethylation of R"; ptm = new PTM(PTM.MODAA, ptmName, "trimeth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:37", "Trimethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trimethylation of protein N-term A atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.H, 0), 6); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("A"); ptmName = "Trimethylation of protein N-term A"; ptm = new PTM(PTM.MODN, ptmName, "trimeth", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:37", "Trimethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Pyrolidone from E atomChainAdded = null; atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("E"); ptmName = "Pyrolidone from E"; // note: if name changed also change in TandemProcessBuilder of SearchGUI and PsmImporter of PeptideShaker ptm = new PTM(PTM.MODNPAA, ptmName, "pyro", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:27", "Glu->pyro-Glu", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Pyrolidone from Q atomChainAdded = null; atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 3); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("Q"); ptmName = "Pyrolidone from Q"; // note: if name changed also change in TandemProcessBuilder of SearchGUI and PsmImporter of PeptideShaker ptm = new PTM(PTM.MODNPAA, ptmName, "pyro", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:28", "Gln->pyro-Glu", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Pyrolidone from carbamidomethylated C atomChainAdded = null; atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 3); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Pyrolidone from carbamidomethylated C"; // note: if name changed also change in TandemProcessBuilder of SearchGUI and PsmImporter of PeptideShaker ptm = new PTM(PTM.MODNPAA, ptmName, "pyro", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:385", "Ammonia-loss", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // HexNAc of S atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.H, 0), 13); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0), 5); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "HexNAc of S"; ptm = new PTM(PTM.MODAA, ptmName, "glyco", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:43", "HexNAc", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // HexNAc of T atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.H, 0), 13); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0), 5); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "HexNAc of T"; ptm = new PTM(PTM.MODAA, ptmName, "glyco", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:43", "HexNAc", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Hex(1)NAc(1) of S atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 14); atomChainAdded.append(new AtomImpl(Atom.H, 0), 23); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0), 10); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "Hex(1)NAc(1) of S"; ptm = new PTM(PTM.MODAA, ptmName, "glyco", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:793", "Hex(1)HexNAc(1) ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Hex(1)NAc(1) of T atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 14); atomChainAdded.append(new AtomImpl(Atom.H, 0), 23); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0), 10); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "Hex(1)NAc(1) of T"; ptm = new PTM(PTM.MODAA, ptmName, "glyco", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:793", "Hex(1)HexNAc(1) ", null)); // note: does not have a PSI name, using interim name defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Hexose of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 6); atomChainAdded.append(new AtomImpl(Atom.H, 0), 10); atomChainAdded.append(new AtomImpl(Atom.O, 0), 5); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Hexose of K"; ptm = new PTM(PTM.MODAA, ptmName, "hex", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:41", "Hex", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Hex(5) HexNAc(4) NeuAc(2) of N atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 84); atomChainAdded.append(new AtomImpl(Atom.H, 0), 136); atomChainAdded.append(new AtomImpl(Atom.O, 0), 61); atomChainAdded.append(new AtomImpl(Atom.N, 0), 6); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("N"); ptmName = "Hex(5) HexNAc(4) NeuAc(2) of N"; ptm = new PTM(PTM.MODAA, ptmName, "glyco", atomChainAdded, atomChainRemoved, aminoAcidPattern); //ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:", "", null)); // @TODO: add cv term... defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Hex(5) HexNAc(4) NeuAc(2) Na of N atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 84); atomChainAdded.append(new AtomImpl(Atom.H, 0), 135); atomChainAdded.append(new AtomImpl(Atom.O, 0), 61); atomChainAdded.append(new AtomImpl(Atom.N, 0), 6); atomChainAdded.append(new AtomImpl(Atom.Na, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("N"); ptmName = "Hex(5) HexNAc(4) NeuAc(2) Na of N"; ptm = new PTM(PTM.MODAA, ptmName, "glyco", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:1408", "Hex(5)HexNAc(4)NeuAc(2) ", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // SUMO-2/3 Q87R atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 18); atomChainAdded.append(new AtomImpl(Atom.H, 0), 29); atomChainAdded.append(new AtomImpl(Atom.N, 0), 7); atomChainAdded.append(new AtomImpl(Atom.O, 0), 8); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "SUMO-2/3 Q87R"; ptm = new PTM(PTM.MODAA, ptmName, "sumo", atomChainAdded, atomChainRemoved, aminoAcidPattern); //ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:", "", null)); // @TODO: add cv term... ptm.addReporterIon(ReporterIon.QQ); ptm.addReporterIon(ReporterIon.QQ_H2O); ptm.addReporterIon(ReporterIon.QQT); ptm.addReporterIon(ReporterIon.QQT_H2O); ptm.addReporterIon(ReporterIon.QQTG); ptm.addReporterIon(ReporterIon.QQTG_H2O); ptm.addReporterIon(ReporterIon.QQTGG); ptm.addReporterIon(ReporterIon.QQTGG_H2O); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Deamidation of N atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("N"); ptmName = "Deamidation of N"; ptm = new PTM(PTM.MODAA, ptmName, "deam", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:7", "Deamidated", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Deamidation of Q atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("Q"); ptmName = "Deamidation of Q"; ptm = new PTM(PTM.MODAA, ptmName, "deam", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:7", "Deamidated", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Deamidation of N 18O atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 2), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("N"); ptmName = "Deamidation of N 18O"; ptm = new PTM(PTM.MODAA, ptmName, "deam", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD: 366", "Deamidation in presence of O18", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Carbamylation of protein N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0)); atomChainAdded.append(new AtomImpl(Atom.H, 0)); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Carbamilation of protein N-term"; ptm = new PTM(PTM.MODN, ptmName, "cm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:5", "Carbamyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Carbamylation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0)); atomChainAdded.append(new AtomImpl(Atom.H, 0)); atomChainAdded.append(new AtomImpl(Atom.N, 0)); atomChainAdded.append(new AtomImpl(Atom.O, 0)); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Carbamilation of K"; ptm = new PTM(PTM.MODAA, ptmName, "cm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:5", "Carbamyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Acetaldehyde +26 atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Acetaldehyde +26"; ptm = new PTM(PTM.MODNP, ptmName, "ace", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:254", "Delta:H(2)C(2)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Sodium adduct to D atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.Na, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("D"); ptmName = "Sodium adduct to D"; ptm = new PTM(PTM.MODAA, ptmName, "Na", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:30", "Cation:Na", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Sodium adduct to E atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.Na, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("E"); ptmName = "Sodium adduct to E"; ptm = new PTM(PTM.MODAA, ptmName, "Na", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:30", "Cation:Na", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Amidation of the peptide C-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.O, 0), 1); aminoAcidPattern = null; ptmName = "Amidation of the peptide C-term"; ptm = new PTM(PTM.MODCP, ptmName, "am", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:2", "Amidated", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Amidation of the protein C-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.O, 0), 1); aminoAcidPattern = null; ptmName = "Amidation of the protein C-term"; ptm = new PTM(PTM.MODC, ptmName, "am", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:2", "Amidated", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Sulfonation of S atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "Sulfonation of S"; ptm = new PTM(PTM.MODAA, ptmName, "s", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:40", "Sulfo", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Sulfonation of T atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "Sulfonation of T"; ptm = new PTM(PTM.MODAA, ptmName, "s", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:40", "Sulfo", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Sulfonation of Y atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 3); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("Y"); ptmName = "Sulfonation of Y"; ptm = new PTM(PTM.MODAA, ptmName, "s", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:40", "Sulfo", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Palmitoylation of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 30); atomChainAdded.append(new AtomImpl(Atom.C, 0), 16); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Palmitoylation of C"; ptm = new PTM(PTM.MODAA, ptmName, "palm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:47", "Palmitoylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Palmitoylation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 30); atomChainAdded.append(new AtomImpl(Atom.C, 0), 16); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Palmitoylation of K"; ptm = new PTM(PTM.MODAA, ptmName, "palm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:47", "Palmitoylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Palmitoylation of S atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 30); atomChainAdded.append(new AtomImpl(Atom.C, 0), 16); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "Palmitoylation of S"; ptm = new PTM(PTM.MODAA, ptmName, "palm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:47", "Palmitoylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Palmitoylation of T atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 30); atomChainAdded.append(new AtomImpl(Atom.C, 0), 16); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "Palmitoylation of T"; ptm = new PTM(PTM.MODAA, ptmName, "palm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:47", "Palmitoylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Palmitoylation of protein N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 30); atomChainAdded.append(new AtomImpl(Atom.C, 0), 16); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Palmitoylation of protein N-term"; ptm = new PTM(PTM.MODN, ptmName, "palm", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:47", "Palmitoylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Formylation of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Formylation of K"; ptm = new PTM(PTM.MODAA, ptmName, "form", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:122", "Formylation", null)); ptm.addReporterIon(ReporterIon.FORMYL_K); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Formylation of S atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "Formylation of S"; ptm = new PTM(PTM.MODAA, ptmName, "form", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:122", "Formylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Formylation of T atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "Formylation of T"; ptm = new PTM(PTM.MODAA, ptmName, "form", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:122", "Formylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Formylation of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Formylation of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "form", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:122", "Formylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Formylation of protein N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Formylation of protein N-term"; ptm = new PTM(PTM.MODN, ptmName, "form", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:122", "Formylation", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Propionyl of K light atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Propionyl of K light"; ptm = new PTM(PTM.MODAA, ptmName, "prop", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:58", "Propionyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Propionyl of peptide N-term light atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Propionyl of peptide N-term light"; ptm = new PTM(PTM.MODNP, ptmName, "prop", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:58", "Propionyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Propionyl of K heavy atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 1), 3); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Propionyl of K heavy"; ptm = new PTM(PTM.MODAA, ptmName, "prop", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:59", "Propionyl:13C(3)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Propionyl of peptide N-term heavy atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 1), 3); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Propionyl of peptide N-term heavy"; ptm = new PTM(PTM.MODNP, ptmName, "prop", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:59", "Propionyl:13C(3)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trideuterated Methyl Ester of D atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 3); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("D"); ptmName = "Trideuterated Methyl Ester of D"; ptm = new PTM(PTM.MODAA, ptmName, "methyl(d3)", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:298", "Methyl:2H(3)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trideuterated Methyl Ester of E atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 3); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("E"); ptmName = "Trideuterated Methyl Ester of E"; ptm = new PTM(PTM.MODAA, ptmName, "methyl(d3)", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:298", "Methyl:2H(3)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trideuterated Methyl Ester of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 3); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Trideuterated Methyl Ester of K"; ptm = new PTM(PTM.MODAA, ptmName, "methyl(d3)", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:298", "Methyl:2H(3)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trideuterated Methyl Ester of R atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 3); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("R"); ptmName = "Trideuterated Methyl Ester of R"; ptm = new PTM(PTM.MODAA, ptmName, "methyl(d3)", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:298", "Methyl:2H(3)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Trideuterated Methyl Ester of peptide C-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 1), 3); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 1); aminoAcidPattern = null; ptmName = "Trideuterated Methyl Ester of peptide C-term"; ptm = new PTM(PTM.MODNP, ptmName, "methyl(d3)", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:298", "Methyl:2H(3)", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Carboxymethylation of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Carboxymethylation of C"; ptm = new PTM(PTM.MODAA, ptmName, "carbox", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:6", "Carboxymethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Farnesylation of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 24); atomChainAdded.append(new AtomImpl(Atom.C, 0), 15); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Farnesylation of C"; ptm = new PTM(PTM.MODAA, ptmName, "far", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:44", "Farnesyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Geranyl-geranyl of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 32); atomChainAdded.append(new AtomImpl(Atom.C, 0), 20); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Geranyl-geranyl of C"; ptm = new PTM(PTM.MODAA, ptmName, "geranyl", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:48", "GeranylGeranyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Guanidination of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Guanidination of K"; ptm = new PTM(PTM.MODAA, ptmName, "guan", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:52", "Guanidinyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Guanidination of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.N, 0), 2); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Guanidination of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "guan", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:52", "Guanidinyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Homoserine of peptide C-term M atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.S, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("M"); ptmName = "Homoserine of peptide C-term M"; ptm = new PTM(PTM.MODCPAA, ptmName, "hse", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:10", "Met->Hse", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Homoserine lactone of peptide C-term M atomChainAdded = null; atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 4); atomChainRemoved.append(new AtomImpl(Atom.C, 0), 1); atomChainRemoved.append(new AtomImpl(Atom.S, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("M"); ptmName = "Homoserine lactone of peptide C-term M"; ptm = new PTM(PTM.MODCPAA, ptmName, "hsel", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:11", "Met->Hsl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Lipoyl of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 12); atomChainAdded.append(new AtomImpl(Atom.C, 0), 8); atomChainAdded.append(new AtomImpl(Atom.S, 0), 2); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Lipoyl of K"; ptm = new PTM(PTM.MODAA, ptmName, "lip", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:42", "Lipoyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylthio of D atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("D"); ptmName = "Methylthio of D"; ptm = new PTM(PTM.MODAA, ptmName, "mmts", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:39", "Methylthio", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylthio of N atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("N"); ptmName = "Methylthio of N"; ptm = new PTM(PTM.MODAA, ptmName, "mmts", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:39", "Methylthio", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Methylthio of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 1); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Methylthio of C"; ptm = new PTM(PTM.MODAA, ptmName, "mmts", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:39", "Methylthio", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // NIPCAM of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 9); atomChainAdded.append(new AtomImpl(Atom.C, 0), 5); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "NIPCAM of C"; ptm = new PTM(PTM.MODAA, ptmName, "nipcam", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:17", "NIPCAM", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Propionamide of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 5); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Propionamide of C"; ptm = new PTM(PTM.MODAA, ptmName, "propam", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:24", "Propionamide", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Propionamide of K atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 5); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("K"); ptmName = "Propionamide of K"; ptm = new PTM(PTM.MODAA, ptmName, "propam", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:24", "Propionamide", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Propionamide of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 5); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Propionamide of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "propam", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:24", "Propionamide", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Pyridylethyl of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 7); atomChainAdded.append(new AtomImpl(Atom.C, 0), 7); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Pyridylethyl of C"; ptm = new PTM(PTM.MODAA, ptmName, "pyri", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:31", "Pyridylethyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dehydration of S atomChainAdded = null; atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved.append(new AtomImpl(Atom.O, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("S"); ptmName = "Dehydration of S"; ptm = new PTM(PTM.MODAA, ptmName, "dehyd", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:23", "Dehydrated", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Dehydration of T atomChainAdded = null; atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); atomChainRemoved.append(new AtomImpl(Atom.O, 0), 1); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "Dehydration of T"; ptm = new PTM(PTM.MODAA, ptmName, "dehyd", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:23", "Dehydrated", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Nethylmaleimide of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 7); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 6); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Nethylmaleimide of C"; ptm = new PTM(PTM.MODAA, ptmName, "nem", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:108", "Nethylmaleimide", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Glutathione of C atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 15); atomChainAdded.append(new AtomImpl(Atom.O, 0), 6); atomChainAdded.append(new AtomImpl(Atom.C, 0), 10); atomChainAdded.append(new AtomImpl(Atom.N, 0), 3); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("C"); ptmName = "Glutathione of C"; ptm = new PTM(PTM.MODAA, ptmName, "glut", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:55", "Glutathione", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // FormylMet of protein N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 9); atomChainAdded.append(new AtomImpl(Atom.O, 0), 2); atomChainAdded.append(new AtomImpl(Atom.C, 0), 6); atomChainAdded.append(new AtomImpl(Atom.N, 0), 1); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "FormylMet of protein N-term"; ptm = new PTM(PTM.MODN, ptmName, "nmet", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:107", "FormylMet", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Didehydro of T atomChainAdded = null; atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("T"); ptmName = "Didehydro of T"; ptm = new PTM(PTM.MODAA, ptmName, "didehyro", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:401", "Didehydro", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Thioacyl of peptide N-term atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.H, 0), 4); atomChainAdded.append(new AtomImpl(Atom.C, 0), 3); atomChainAdded.append(new AtomImpl(Atom.O, 0), 1); atomChainAdded.append(new AtomImpl(Atom.S, 0), 1); atomChainRemoved = null; aminoAcidPattern = null; ptmName = "Thioacyl of peptide N-term"; ptm = new PTM(PTM.MODNP, ptmName, "thioacyl", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:126", "Thioacyl", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); // Diiodination of Y atomChainAdded = new AtomChain(); atomChainAdded.append(new AtomImpl(Atom.I, 0), 2); atomChainRemoved = new AtomChain(); atomChainRemoved.append(new AtomImpl(Atom.H, 0), 2); aminoAcidPattern = AminoAcidPattern.getAminoAcidPatternFromString("Y"); ptmName = "Diiodination of Y"; ptm = new PTM(PTM.MODAA, ptmName, "diiodo", atomChainAdded, atomChainRemoved, aminoAcidPattern); ptm.setCvTerm(new CvTerm("UNIMOD", "UNIMOD:130", "Diiodo", null)); defaultMods.add(ptmName); ptmMap.put(ptmName, ptm); } }