Search in sources :

Example 1 with PSParameter

use of com.compomics.util.experiment.identification.peptide_shaker.PSParameter in project peptide-shaker by compomics.

the class SpectrumIdentificationPanel method populateIdResultsTable.

/**
 * Populates the assumptions table with assumptions from the selected
 * spectrum match.
 *
 * @param spectrumMatchKey the key of the selected spectrum match
 */
private void populateIdResultsTable(long spectrumMatchKey) {
    currentAssumptionsList = new ArrayList<>(8);
    searchResultsTablePeptideTooltips = new ArrayList<>(8);
    SpectrumMatch spectrumMatch = identification.getSpectrumMatch(spectrumMatchKey);
    if (spectrumMatch != null) {
        // sort peptides by pep, tool, and sequence
        HashMap<Integer, TreeMap<Double, ArrayList<PeptideAssumption>>> peptideAssumptions = spectrumMatch.getPeptideAssumptionsMap();
        TreeMap<Double, TreeMap<Integer, TreeMap<String, ArrayList<PeptideAssumption>>>> peptideAssumptionsByPep = new TreeMap<>();
        for (Entry<Integer, TreeMap<Double, ArrayList<PeptideAssumption>>> entry1 : peptideAssumptions.entrySet()) {
            int tool = entry1.getKey();
            for (Entry<Double, ArrayList<PeptideAssumption>> entry2 : entry1.getValue().entrySet()) {
                ArrayList<PeptideAssumption> assumptions = entry2.getValue();
                for (PeptideAssumption peptideAssumption : assumptions) {
                    PSParameter psParameter = (PSParameter) peptideAssumption.getUrParam(PSParameter.dummy);
                    double pep = psParameter.getProbability();
                    TreeMap<Integer, TreeMap<String, ArrayList<PeptideAssumption>>> mapAtPep = peptideAssumptionsByPep.get(pep);
                    if (mapAtPep == null) {
                        mapAtPep = new TreeMap<>();
                        peptideAssumptionsByPep.put(pep, mapAtPep);
                    }
                    TreeMap<String, ArrayList<PeptideAssumption>> toolMap = mapAtPep.get(tool);
                    if (toolMap == null) {
                        toolMap = new TreeMap<>();
                        mapAtPep.put(tool, toolMap);
                    }
                    String sequence = peptideAssumption.getPeptide().getSequence();
                    ArrayList<PeptideAssumption> sequenceAssumptions = toolMap.get(sequence);
                    if (sequenceAssumptions == null) {
                        sequenceAssumptions = new ArrayList<>(1);
                        toolMap.put(sequence, sequenceAssumptions);
                    }
                    sequenceAssumptions.add(peptideAssumption);
                }
            }
        }
        // Add peptides to the list to display
        peptideAssumptionsByPep.values().stream().flatMap(subMap -> subMap.values().stream()).flatMap(subMap -> subMap.values().stream()).flatMap(assumptionList -> assumptionList.stream()).forEach(peptideAssumption -> {
            Peptide peptide = peptideAssumption.getPeptide();
            if (peptideShakerGUI.getIdentificationParameters().getPeptideAssumptionFilter().validatePeptide(peptide, peptideShakerGUI.getIdentificationParameters().getSequenceMatchingParameters(), peptideShakerGUI.getIdentificationParameters().getSearchParameters().getDigestionParameters())) {
                if (vallidatedPsmsCheckBox.isSelected()) {
                    PSParameter psParameter = (PSParameter) peptideAssumption.getUrParam(PSParameter.dummy);
                    if (psParameter.getMatchValidationLevel().isValidated()) {
                        currentAssumptionsList.add(peptideAssumption);
                        searchResultsTablePeptideTooltips.add(peptideShakerGUI.getDisplayFeaturesGenerator().getPeptideModificationTooltipAsHtml(peptide));
                    }
                } else {
                    currentAssumptionsList.add(peptideAssumption);
                    searchResultsTablePeptideTooltips.add(peptideShakerGUI.getDisplayFeaturesGenerator().getPeptideModificationTooltipAsHtml(peptide));
                }
            }
        });
        // Add tags to the list to display. Scores cannot be compared between algorithms so keep sorting by tool.
        spectrumMatch.getTagAssumptionsMap().values().stream().flatMap(subMap -> subMap.values().stream()).flatMap(array -> array.stream()).forEach(tagAssumption -> {
            // @TODO: filter the tags as well? and respect the vallidatedPsmsCheckBox value!
            currentAssumptionsList.add(tagAssumption);
            String toolTip = peptideShakerGUI.getDisplayFeaturesGenerator().getTagModificationTooltipAsHtml(tagAssumption.getTag());
            searchResultsTablePeptideTooltips.add(toolTip);
        });
    }
}
Also used : NO_KEY(com.compomics.util.experiment.personalization.ExperimentObject.NO_KEY) TagAssumption(com.compomics.util.experiment.identification.spectrum_assumptions.TagAssumption) JSparklinesBarChartTableCellRenderer(no.uib.jsparklines.renderers.JSparklinesBarChartTableCellRenderer) TagSpectrumAnnotator(com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.TagSpectrumAnnotator) JTableHeader(javax.swing.table.JTableHeader) PeptideShakerGUI(eu.isas.peptideshaker.gui.PeptideShakerGUI) SpecificAnnotationParameters(com.compomics.util.experiment.identification.spectrum_annotation.SpecificAnnotationParameters) SpectrumAnnotator(com.compomics.util.experiment.identification.spectrum_annotation.SpectrumAnnotator) MouseAdapter(java.awt.event.MouseAdapter) TitledBorder(javax.swing.border.TitledBorder) SpectrumProvider(com.compomics.util.experiment.mass_spectrometry.SpectrumProvider) DefaultComboBoxModel(javax.swing.DefaultComboBoxModel) JSparklinesIntegerIconTableCellRenderer(no.uib.jsparklines.renderers.JSparklinesIntegerIconTableCellRenderer) TableProperties(com.compomics.util.gui.TableProperties) IonMatch(com.compomics.util.experiment.identification.matches.IonMatch) ModificationParameters(com.compomics.util.parameters.identification.search.ModificationParameters) ScrollPaneConstants(javax.swing.ScrollPaneConstants) PeptideAssumption(com.compomics.util.experiment.identification.spectrum_assumptions.PeptideAssumption) DefaultTableModel(javax.swing.table.DefaultTableModel) ToolTipManager(javax.swing.ToolTipManager) SequenceMatchingParameters(com.compomics.util.parameters.identification.advanced.SequenceMatchingParameters) Util(com.compomics.util.Util) Component(java.awt.Component) SearchParameters(com.compomics.util.parameters.identification.search.SearchParameters) DisplayParameters(eu.isas.peptideshaker.preferences.DisplayParameters) ChartFactory(org.jfree.chart.ChartFactory) StandardCategoryItemLabelGenerator(org.jfree.chart.labels.StandardCategoryItemLabelGenerator) IdentificationParameters(com.compomics.util.parameters.identification.IdentificationParameters) MassErrorBubblePlot(com.compomics.util.gui.spectrum.MassErrorBubblePlot) PSParameter(com.compomics.util.experiment.identification.peptide_shaker.PSParameter) CategoryPlot(org.jfree.chart.plot.CategoryPlot) ArrayUtil(com.compomics.util.ArrayUtil) Entry(java.util.Map.Entry) JTable(javax.swing.JTable) ChartPanel(org.jfree.chart.ChartPanel) Precursor(com.compomics.util.experiment.mass_spectrometry.spectra.Precursor) RowSorterEvent(javax.swing.event.RowSorterEvent) AlignedListCellRenderer(com.compomics.util.gui.renderers.AlignedListCellRenderer) JPanel(javax.swing.JPanel) Toolkit(java.awt.Toolkit) BarRenderer(org.jfree.chart.renderer.category.BarRenderer) IntStream(java.util.stream.IntStream) Rectangle(java.awt.Rectangle) SpectrumIdentificationAssumption(com.compomics.util.experiment.identification.SpectrumIdentificationAssumption) HelpDialog(com.compomics.util.gui.error_handlers.HelpDialog) DefaultCategoryDataset(org.jfree.data.category.DefaultCategoryDataset) HashMap(java.util.HashMap) PlotOrientation(org.jfree.chart.plot.PlotOrientation) SwingConstants(javax.swing.SwingConstants) TreeSet(java.util.TreeSet) SpectrumMatch(com.compomics.util.experiment.identification.matches.SpectrumMatch) ArrayList(java.util.ArrayList) JSparklinesIntervalChartTableCellRenderer(no.uib.jsparklines.renderers.JSparklinesIntervalChartTableCellRenderer) HashSet(java.util.HashSet) JSparklinesIntegerColorTableCellRenderer(no.uib.jsparklines.renderers.JSparklinesIntegerColorTableCellRenderer) XYPlottingDialog(com.compomics.util.gui.XYPlottingDialog) SpectrumPanel(com.compomics.util.gui.spectrum.SpectrumPanel) SwingUtilities(javax.swing.SwingUtilities) ModificationUtils(com.compomics.util.experiment.identification.utils.ModificationUtils) JMenuItem(javax.swing.JMenuItem) StandardBarPainter(org.jfree.chart.renderer.category.StandardBarPainter) InputMap(eu.isas.peptideshaker.scoring.maps.InputMap) JFreeChart(org.jfree.chart.JFreeChart) Advocate(com.compomics.util.experiment.identification.Advocate) Spectrum(com.compomics.util.experiment.mass_spectrometry.spectra.Spectrum) MatchValidationLevel(com.compomics.util.experiment.identification.validation.MatchValidationLevel) BufferedWriter(java.io.BufferedWriter) JPopupMenu(javax.swing.JPopupMenu) FileWriter(java.io.FileWriter) RowSorterListener(javax.swing.event.RowSorterListener) DecimalFormat(java.text.DecimalFormat) SequenceProvider(com.compomics.util.experiment.io.biology.protein.SequenceProvider) ValueAxis(org.jfree.chart.axis.ValueAxis) Identification(com.compomics.util.experiment.identification.Identification) IOException(java.io.IOException) Peptide(com.compomics.util.experiment.biology.proteins.Peptide) JOptionPane(javax.swing.JOptionPane) ExportGraphicsDialog(com.compomics.util.gui.export.graphics.ExportGraphicsDialog) PSMaps(eu.isas.peptideshaker.scoring.PSMaps) MouseEvent(java.awt.event.MouseEvent) File(java.io.File) AnnotationParameters(com.compomics.util.experiment.identification.spectrum_annotation.AnnotationParameters) PeptideSpectrumAnnotator(com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.PeptideSpectrumAnnotator) DisplayFeaturesGenerator(eu.isas.peptideshaker.utils.DisplayFeaturesGenerator) Charge(com.compomics.util.experiment.biology.ions.Charge) HtmlLinksRenderer(no.uib.jsparklines.extra.HtmlLinksRenderer) TreeMap(java.util.TreeMap) StandardCategoryToolTipGenerator(org.jfree.chart.labels.StandardCategoryToolTipGenerator) ProgressDialogX(com.compomics.util.gui.waiting.waitinghandlers.ProgressDialogX) ArrayList(java.util.ArrayList) TreeMap(java.util.TreeMap) SpectrumMatch(com.compomics.util.experiment.identification.matches.SpectrumMatch) PeptideAssumption(com.compomics.util.experiment.identification.spectrum_assumptions.PeptideAssumption) Peptide(com.compomics.util.experiment.biology.proteins.Peptide) PSParameter(com.compomics.util.experiment.identification.peptide_shaker.PSParameter)

Example 2 with PSParameter

use of com.compomics.util.experiment.identification.peptide_shaker.PSParameter in project peptide-shaker by compomics.

the class ProteinStructurePanel method peptideTableMouseReleased.

// GEN-LAST:event_proteinTableMouseReleased
/**
 * Updates the PDB structure.
 *
 * @param evt
 */
private void peptideTableMouseReleased(java.awt.event.MouseEvent evt) {
    // GEN-FIRST:event_peptideTableMouseReleased
    setCursor(new java.awt.Cursor(java.awt.Cursor.WAIT_CURSOR));
    if (evt != null) {
        peptideShakerGUI.setSelectedItems(peptideShakerGUI.getSelectedProteinKey(), NO_KEY, null, null);
    }
    int row = peptideTable.getSelectedRow();
    int column = peptideTable.getSelectedColumn();
    if (row != -1) {
        if (pdbMatchesJTable.getSelectedRow() != -1) {
            updatePeptideToPdbMapping();
        }
        // remember the selection
        newItemSelection();
        if (column == peptideTable.getColumn("  ").getModelIndex()) {
            long peptideKey = peptideTableMap.get(getPeptideIndex(row));
            PeptideMatch peptideMatch = peptideShakerGUI.getIdentification().getPeptideMatch(peptideKey);
            PSParameter psParameter = (PSParameter) peptideMatch.getUrParam(PSParameter.dummy);
            if (!psParameter.getStarred()) {
                peptideShakerGUI.getStarHider().starPeptide(peptideKey);
            } else {
                peptideShakerGUI.getStarHider().unStarPeptide(peptideKey);
            }
            peptideShakerGUI.setDataSaved(false);
        }
        // open the protein inference at the petide level dialog
        if (column == peptideTable.getColumn("PI").getModelIndex() && evt != null && evt.getButton() == MouseEvent.BUTTON1) {
            SelfUpdatingTableModel tableModel = (SelfUpdatingTableModel) proteinTable.getModel();
            int proteinIndex = tableModel.getViewIndex(proteinTable.getSelectedRow());
            long proteinKey = proteinKeys[proteinIndex];
            long peptideKey = peptideTableMap.get(getPeptideIndex(row));
            new ProteinInferencePeptideLevelDialog(peptideShakerGUI, true, peptideKey, proteinKey, peptideShakerGUI.getGeneMaps());
        }
    }
    setCursor(new java.awt.Cursor(java.awt.Cursor.DEFAULT_CURSOR));
}
Also used : PeptideMatch(com.compomics.util.experiment.identification.matches.PeptideMatch) SelfUpdatingTableModel(com.compomics.util.gui.tablemodels.SelfUpdatingTableModel) ProteinInferencePeptideLevelDialog(eu.isas.peptideshaker.gui.protein_inference.ProteinInferencePeptideLevelDialog) XYDataPoint(no.uib.jsparklines.data.XYDataPoint) PSParameter(com.compomics.util.experiment.identification.peptide_shaker.PSParameter)

Example 3 with PSParameter

use of com.compomics.util.experiment.identification.peptide_shaker.PSParameter in project peptide-shaker by compomics.

the class ModificationLocalizationScorer method attachDeltaScore.

/**
 * Scores the modification locations using the delta score.
 *
 * @param identification Identification object containing the matches.
 * @param spectrumMatch The spectrum match of interest.
 * @param sequenceMatchingParameters The sequence matching preferences.
 * @param modificationProvider The modification provider to use.
 */
public void attachDeltaScore(Identification identification, SpectrumMatch spectrumMatch, SequenceMatchingParameters sequenceMatchingParameters, ModificationProvider modificationProvider) {
    PSModificationScores modificationScores = (PSModificationScores) spectrumMatch.getUrParam(PSModificationScores.dummy);
    if (modificationScores == null) {
        modificationScores = new PSModificationScores();
        spectrumMatch.addUrParam(modificationScores);
    }
    Peptide psPeptide = spectrumMatch.getBestPeptideAssumption().getPeptide();
    HashMap<Integer, TreeMap<Double, ArrayList<PeptideAssumption>>> assumptions = spectrumMatch.getPeptideAssumptionsMap();
    String mainSequence = psPeptide.getSequence();
    HashMap<String, List<Integer>> modificationParameters = Arrays.stream(psPeptide.getVariableModifications()).collect(Collectors.groupingBy(ModificationMatch::getModification, HashMap::new, Collectors.mapping(ModificationMatch::getSite, Collectors.toList())));
    for (Entry<String, List<Integer>> entry : modificationParameters.entrySet()) {
        String modName = entry.getKey();
        List<Integer> sites = entry.getValue();
        Modification modification1 = modificationProvider.getModification(modName);
        for (int modSite : sites) {
            double refP = 1, secondaryP = 1;
            for (TreeMap<Double, ArrayList<PeptideAssumption>> algorithmAssumptions : assumptions.values()) {
                for (ArrayList<PeptideAssumption> assumptionsAtScore : algorithmAssumptions.values()) {
                    for (PeptideAssumption peptideAssumption : assumptionsAtScore) {
                        if (peptideAssumption.getPeptide().getSequence().equals(mainSequence)) {
                            boolean modificationAtSite = false, modificationFound = false;
                            Peptide peptide = peptideAssumption.getPeptide();
                            for (ModificationMatch modMatch : peptide.getVariableModifications()) {
                                Modification modification2 = modificationProvider.getModification(modMatch.getModification());
                                if (modification1.getMass() == modification2.getMass()) {
                                    modificationFound = true;
                                    PSParameter psParameter = (PSParameter) peptideAssumption.getUrParam(PSParameter.dummy);
                                    double p = psParameter.getProbability();
                                    if (modMatch.getSite() == modSite) {
                                        modificationAtSite = true;
                                        if (p < refP) {
                                            refP = p;
                                        }
                                    }
                                }
                            }
                            if (!modificationAtSite && modificationFound) {
                                PSParameter psParameter = (PSParameter) peptideAssumption.getUrParam(PSParameter.dummy);
                                double p = psParameter.getProbability();
                                if (p < secondaryP) {
                                    secondaryP = p;
                                }
                            }
                        }
                    }
                }
            }
            ModificationScoring modificationScoring = modificationScores.getModificationScoring(modName);
            if (modificationScoring == null) {
                modificationScoring = new ModificationScoring(modName);
                modificationScores.addModificationScoring(modName, modificationScoring);
            }
            if (secondaryP < refP) {
                secondaryP = refP;
            }
            double deltaScore = (secondaryP - refP) * 100;
            modificationScoring.setDeltaScore(modSite, deltaScore);
        }
        identification.updateObject(spectrumMatch.getKey(), spectrumMatch);
    }
}
Also used : Modification(com.compomics.util.experiment.biology.modifications.Modification) ModificationMatch(com.compomics.util.experiment.identification.matches.ModificationMatch) ArrayList(java.util.ArrayList) TreeMap(java.util.TreeMap) ModificationScoring(com.compomics.util.experiment.identification.peptide_shaker.ModificationScoring) ArrayList(java.util.ArrayList) List(java.util.List) PSModificationScores(com.compomics.util.experiment.identification.peptide_shaker.PSModificationScores) Peptide(com.compomics.util.experiment.biology.proteins.Peptide) PeptideAssumption(com.compomics.util.experiment.identification.spectrum_assumptions.PeptideAssumption) PSParameter(com.compomics.util.experiment.identification.peptide_shaker.PSParameter)

Example 4 with PSParameter

use of com.compomics.util.experiment.identification.peptide_shaker.PSParameter in project peptide-shaker by compomics.

the class ModificationLocalizationScorer method scorePTMs.

/**
 * Scores PTMs in a protein match.
 *
 * @param identification The identification object containing the matches.
 * @param proteinMatch The protein match.
 * @param identificationParameters The identification parameters.
 * @param scorePeptides If true, peptides will be scored as well.
 * @param modificationProvider The modification provider to use.
 * @param waitingHandler The waiting handler to sue, ignored if null.
 */
public void scorePTMs(Identification identification, ProteinMatch proteinMatch, IdentificationParameters identificationParameters, boolean scorePeptides, ModificationProvider modificationProvider, WaitingHandler waitingHandler) {
    HashMap<Integer, ArrayList<String>> confidentSites = new HashMap<>();
    HashMap<Integer, HashMap<Integer, HashSet<String>>> ambiguousSites = new HashMap<>();
    for (long peptideKey : proteinMatch.getPeptideMatchesKeys()) {
        PeptideMatch peptideMatch = identification.getPeptideMatch(peptideKey);
        Peptide peptide = peptideMatch.getPeptide();
        PSParameter psParameter = (PSParameter) peptideMatch.getUrParam(PSParameter.dummy);
        if (psParameter.getMatchValidationLevel().isValidated() && peptide.getNVariableModifications() > 0) {
            PSModificationScores peptideScores = (PSModificationScores) peptideMatch.getUrParam(PSModificationScores.dummy);
            if (peptideScores == null || scorePeptides) {
                scorePTMs(identification, peptideMatch, identificationParameters, modificationProvider, waitingHandler);
                peptideScores = (PSModificationScores) peptideMatch.getUrParam(PSModificationScores.dummy);
            }
            if (peptideScores != null) {
                int[] peptideStart = peptide.getProteinMapping().get(proteinMatch.getLeadingAccession());
                for (int confidentSite : peptideScores.getConfidentSites()) {
                    for (int peptideTempStart : peptideStart) {
                        int siteOnProtein = peptideTempStart + confidentSite - 1;
                        ArrayList<String> modificationsAtSite = confidentSites.get(siteOnProtein);
                        if (modificationsAtSite == null) {
                            modificationsAtSite = new ArrayList<>();
                            confidentSites.put(siteOnProtein, modificationsAtSite);
                        }
                        for (String modName : peptideScores.getConfidentModificationsAt(confidentSite)) {
                            if (!modificationsAtSite.contains(modName)) {
                                modificationsAtSite.add(modName);
                            }
                        }
                    }
                }
                for (int representativeSite : peptideScores.getRepresentativeSites()) {
                    HashMap<Integer, HashSet<String>> peptideAmbiguousSites = peptideScores.getAmbiguousModificationsAtRepresentativeSite(representativeSite);
                    for (int peptideTempStart : peptideStart) {
                        int proteinRepresentativeSite = peptideTempStart + representativeSite - 1;
                        HashMap<Integer, HashSet<String>> proteinAmbiguousSites = ambiguousSites.get(proteinRepresentativeSite);
                        if (proteinAmbiguousSites == null) {
                            proteinAmbiguousSites = new HashMap<>(peptideAmbiguousSites.size());
                            ambiguousSites.put(proteinRepresentativeSite, proteinAmbiguousSites);
                        }
                        for (int peptideSite : peptideAmbiguousSites.keySet()) {
                            int siteOnProtein = peptideTempStart + peptideSite - 1;
                            proteinAmbiguousSites.put(siteOnProtein, peptideAmbiguousSites.get(peptideSite));
                        }
                    }
                }
            }
        }
    }
    // remove ambiguous sites where a confident was found and merge overlapping groups
    PSModificationScores proteinScores = new PSModificationScores();
    ArrayList<Integer> representativeSites = new ArrayList<>(ambiguousSites.keySet());
    Collections.sort(representativeSites);
    for (Integer representativeSite : representativeSites) {
        HashMap<Integer, HashSet<String>> secondarySitesMap = ambiguousSites.get(representativeSite);
        ArrayList<Integer> secondarySites = new ArrayList<>(secondarySitesMap.keySet());
        for (int secondarySite : secondarySites) {
            ArrayList<String> confidentModifications = confidentSites.get(secondarySite);
            if (confidentModifications != null) {
                boolean sameModification = confidentModifications.stream().map(modName -> modificationProvider.getModification(modName)).anyMatch(confidentModification -> secondarySitesMap.get(secondarySite).stream().map(modName -> modificationProvider.getModification(modName)).anyMatch(secondaryModification -> secondaryModification.getMass() == confidentModification.getMass()));
                if (sameModification) {
                    ambiguousSites.remove(representativeSite);
                    break;
                }
            }
            if (secondarySite != representativeSite) {
                ArrayList<Integer> tempRepresentativeSites = new ArrayList<>(ambiguousSites.keySet());
                Collections.sort(tempRepresentativeSites);
                for (Integer previousSite : tempRepresentativeSites) {
                    if (previousSite >= representativeSite) {
                        break;
                    }
                    if (previousSite == secondarySite) {
                        HashMap<Integer, HashSet<String>> previousSites = ambiguousSites.get(previousSite);
                        HashSet<String> previousModifications = previousSites.get(previousSite);
                        boolean sameModification = previousModifications.stream().map(modName -> modificationProvider.getModification(modName)).anyMatch(previousModification -> secondarySitesMap.get(secondarySite).stream().map(modName -> modificationProvider.getModification(modName)).anyMatch(secondaryModification -> secondaryModification.getMass() == previousModification.getMass()));
                        if (sameModification) {
                            for (int tempSecondarySite : secondarySitesMap.keySet()) {
                                if (!previousSites.containsKey(secondarySite)) {
                                    previousSites.put(tempSecondarySite, secondarySitesMap.get(tempSecondarySite));
                                }
                            }
                            ambiguousSites.remove(representativeSite);
                        }
                    }
                }
            }
        }
    }
    for (int confidentSite : confidentSites.keySet()) {
        for (String modName : confidentSites.get(confidentSite)) {
            proteinScores.addConfidentModificationSite(modName, confidentSite);
        }
    }
    for (int representativeSite : ambiguousSites.keySet()) {
        proteinScores.addAmbiguousModificationSites(representativeSite, ambiguousSites.get(representativeSite));
    }
    proteinMatch.addUrParam(proteinScores);
}
Also used : ModificationMatch(com.compomics.util.experiment.identification.matches.ModificationMatch) ModificationFactory(com.compomics.util.experiment.biology.modifications.ModificationFactory) Arrays(java.util.Arrays) ModificationType(com.compomics.util.experiment.biology.modifications.ModificationType) HashMap(java.util.HashMap) PeptideMatch(com.compomics.util.experiment.identification.matches.PeptideMatch) ModificationScoring(com.compomics.util.experiment.identification.peptide_shaker.ModificationScoring) TreeSet(java.util.TreeSet) SpectrumMatch(com.compomics.util.experiment.identification.matches.SpectrumMatch) ArrayList(java.util.ArrayList) HashSet(java.util.HashSet) Modification(com.compomics.util.experiment.biology.modifications.Modification) WaitingHandler(com.compomics.util.waiting.WaitingHandler) ProteinMatch(com.compomics.util.experiment.identification.matches.ProteinMatch) ModificationUtils(com.compomics.util.experiment.identification.utils.ModificationUtils) SpecificAnnotationParameters(com.compomics.util.experiment.identification.spectrum_annotation.SpecificAnnotationParameters) SpectrumProvider(com.compomics.util.experiment.mass_spectrometry.SpectrumProvider) PhosphoRS(com.compomics.util.experiment.identification.modification.scores.PhosphoRS) ModificationProvider(com.compomics.util.experiment.biology.modifications.ModificationProvider) Spectrum(com.compomics.util.experiment.mass_spectrometry.spectra.Spectrum) ModificationParameters(com.compomics.util.parameters.identification.search.ModificationParameters) PSModificationScores(com.compomics.util.experiment.identification.peptide_shaker.PSModificationScores) PeptideAssumption(com.compomics.util.experiment.identification.spectrum_assumptions.PeptideAssumption) SequenceMatchingParameters(com.compomics.util.parameters.identification.advanced.SequenceMatchingParameters) ExperimentObject(com.compomics.util.experiment.personalization.ExperimentObject) SequenceProvider(com.compomics.util.experiment.io.biology.protein.SequenceProvider) Set(java.util.Set) Identification(com.compomics.util.experiment.identification.Identification) Peptide(com.compomics.util.experiment.biology.proteins.Peptide) ModificationLocalizationScore(com.compomics.util.experiment.identification.modification.ModificationLocalizationScore) Collectors(java.util.stream.Collectors) AnnotationParameters(com.compomics.util.experiment.identification.spectrum_annotation.AnnotationParameters) SearchParameters(com.compomics.util.parameters.identification.search.SearchParameters) PeptideSpectrumAnnotator(com.compomics.util.experiment.identification.spectrum_annotation.spectrum_annotators.PeptideSpectrumAnnotator) IdentificationParameters(com.compomics.util.parameters.identification.IdentificationParameters) List(java.util.List) Stream(java.util.stream.Stream) PSParameter(com.compomics.util.experiment.identification.peptide_shaker.PSParameter) TreeMap(java.util.TreeMap) Entry(java.util.Map.Entry) Collections(java.util.Collections) ModificationLocalizationParameters(com.compomics.util.parameters.identification.advanced.ModificationLocalizationParameters) PeptideMatch(com.compomics.util.experiment.identification.matches.PeptideMatch) HashMap(java.util.HashMap) ArrayList(java.util.ArrayList) PSModificationScores(com.compomics.util.experiment.identification.peptide_shaker.PSModificationScores) Peptide(com.compomics.util.experiment.biology.proteins.Peptide) PSParameter(com.compomics.util.experiment.identification.peptide_shaker.PSParameter) HashSet(java.util.HashSet)

Example 5 with PSParameter

use of com.compomics.util.experiment.identification.peptide_shaker.PSParameter in project peptide-shaker by compomics.

the class QCPanel method getPeptideDataset.

/**
 * Returns the dataset to use for the peptide QC plot.
 */
private void getPeptideDataset() {
    maxValue = Double.MIN_VALUE;
    SequenceProvider sequenceProvider = peptideShakerGUI.getSequenceProvider();
    if (peptideValidatedPsmsJRadioButton.isSelected()) {
        progressDialog.setPrimaryProgressCounterIndeterminate(false);
        progressDialog.setMaxPrimaryProgressCounter(peptideShakerGUI.getIdentification().getPeptideIdentification().size());
        progressDialog.setValue(0);
        // values for the number of validated PSMs
        validatedValues = new ArrayList<>();
        validatedDoubtfulValues = new ArrayList<>();
        nonValidatedValues = new ArrayList<>();
        validatedDecoyValues = new ArrayList<>();
        nonValidatedDecoyValues = new ArrayList<>();
        PeptideMatchesIterator peptideMatchesIterator = peptideShakerGUI.getIdentification().getPeptideMatchesIterator(progressDialog);
        PeptideMatch peptideMatch;
        while ((peptideMatch = peptideMatchesIterator.next()) != null) {
            if (progressDialog.isRunCanceled()) {
                break;
            }
            double value = 0;
            for (long spectrumMatchKey : peptideMatch.getSpectrumMatchesKeys()) {
                if (progressDialog.isRunCanceled()) {
                    break;
                }
                SpectrumMatch spectrumMatch = peptideShakerGUI.getIdentification().getSpectrumMatch(spectrumMatchKey);
                PSParameter spectrumParameter = (PSParameter) spectrumMatch.getUrParam(PSParameter.dummy);
                if (spectrumParameter.getMatchValidationLevel().isValidated() && !spectrumParameter.getHidden()) {
                    value = value + 1;
                }
            }
            if (value > maxValue) {
                maxValue = value;
            }
            PSParameter peptideParameter = (PSParameter) peptideMatch.getUrParam(PSParameter.dummy);
            if (!peptideParameter.getHidden()) {
                if (!PeptideUtils.isDecoy(peptideMatch.getPeptide(), sequenceProvider)) {
                    if (peptideParameter.getMatchValidationLevel().isValidated()) {
                        if (peptideParameter.getMatchValidationLevel() == MatchValidationLevel.confident) {
                            validatedValues.add(value);
                        } else {
                            validatedDoubtfulValues.add(value);
                        }
                    } else {
                        nonValidatedValues.add(value);
                    }
                } else if (peptideParameter.getMatchValidationLevel().isValidated()) {
                    validatedDecoyValues.add(value);
                } else {
                    nonValidatedDecoyValues.add(value);
                }
            }
            progressDialog.increasePrimaryProgressCounter();
        }
    } else if (peptideMissedCleavagesJRadioButton.isSelected()) {
        progressDialog.setPrimaryProgressCounterIndeterminate(false);
        progressDialog.setMaxPrimaryProgressCounter(peptideShakerGUI.getIdentification().getPeptideIdentification().size());
        progressDialog.setValue(0);
        // Values for the missed cleavages
        validatedValues = new ArrayList<>();
        validatedDoubtfulValues = new ArrayList<>();
        nonValidatedValues = new ArrayList<>();
        validatedDecoyValues = new ArrayList<>();
        nonValidatedDecoyValues = new ArrayList<>();
        PeptideMatchesIterator peptideMatchesIterator = peptideShakerGUI.getIdentification().getPeptideMatchesIterator(progressDialog);
        PeptideMatch peptideMatch;
        while ((peptideMatch = peptideMatchesIterator.next()) != null) {
            if (progressDialog.isRunCanceled()) {
                break;
            }
            PSParameter peptideParameter = (PSParameter) peptideMatch.getUrParam(PSParameter.dummy);
            if (!peptideParameter.getHidden()) {
                Double value = null;
                DigestionParameters digestionParameters = peptideShakerGUI.getIdentificationParameters().getSearchParameters().getDigestionParameters();
                if (digestionParameters.getCleavageParameter() == DigestionParameters.CleavageParameter.enzyme) {
                    for (Enzyme enzyme : digestionParameters.getEnzymes()) {
                        int enzymeMissedCelavages = enzyme.getNmissedCleavages(peptideMatch.getPeptide().getSequence());
                        if (value == null || enzymeMissedCelavages < value) {
                            value = Double.valueOf(enzymeMissedCelavages);
                        }
                    }
                }
                if (value == null) {
                    value = 0.0;
                }
                if (value > 0) {
                    if (value > maxValue) {
                        maxValue = value;
                    }
                }
                if (!PeptideUtils.isDecoy(peptideMatch.getPeptide(), sequenceProvider)) {
                    if (peptideParameter.getMatchValidationLevel().isValidated()) {
                        if (peptideParameter.getMatchValidationLevel() == MatchValidationLevel.confident) {
                            validatedValues.add(value);
                        } else {
                            validatedDoubtfulValues.add(value);
                        }
                    } else {
                        nonValidatedValues.add(value);
                    }
                } else if (peptideParameter.getMatchValidationLevel().isValidated()) {
                    validatedDecoyValues.add(value);
                } else {
                    nonValidatedDecoyValues.add(value);
                }
            }
            progressDialog.increasePrimaryProgressCounter();
        }
    } else if (peptideLengthJRadioButton.isSelected()) {
        progressDialog.setPrimaryProgressCounterIndeterminate(false);
        progressDialog.setMaxPrimaryProgressCounter(peptideShakerGUI.getIdentification().getPeptideIdentification().size());
        progressDialog.setValue(0);
        // values for the peptide length
        validatedValues = new ArrayList<>();
        validatedDoubtfulValues = new ArrayList<>();
        nonValidatedValues = new ArrayList<>();
        validatedDecoyValues = new ArrayList<>();
        nonValidatedDecoyValues = new ArrayList<>();
        PeptideMatchesIterator peptideMatchesIterator = peptideShakerGUI.getIdentification().getPeptideMatchesIterator(progressDialog);
        PeptideMatch peptideMatch;
        while ((peptideMatch = peptideMatchesIterator.next()) != null) {
            if (progressDialog.isRunCanceled()) {
                break;
            }
            PSParameter peptideParameter = (PSParameter) peptideMatch.getUrParam(PSParameter.dummy);
            if (!peptideParameter.getHidden()) {
                double length = peptideMatch.getPeptide().getSequence().length();
                if (length > 0) {
                    if (length > maxValue) {
                        maxValue = length;
                    }
                }
                if (!PeptideUtils.isDecoy(peptideMatch.getPeptide(), sequenceProvider)) {
                    if (peptideParameter.getMatchValidationLevel().isValidated()) {
                        if (peptideParameter.getMatchValidationLevel() == MatchValidationLevel.confident) {
                            validatedValues.add(length);
                        } else {
                            validatedDoubtfulValues.add(length);
                        }
                    } else {
                        nonValidatedValues.add(length);
                    }
                } else if (peptideParameter.getMatchValidationLevel().isValidated()) {
                    validatedDecoyValues.add(length);
                } else {
                    nonValidatedDecoyValues.add(length);
                }
            }
            progressDialog.increasePrimaryProgressCounter();
        }
    }
}
Also used : SequenceProvider(com.compomics.util.experiment.io.biology.protein.SequenceProvider) DigestionParameters(com.compomics.util.parameters.identification.search.DigestionParameters) PeptideMatchesIterator(com.compomics.util.experiment.identification.matches_iterators.PeptideMatchesIterator) PeptideMatch(com.compomics.util.experiment.identification.matches.PeptideMatch) SpectrumMatch(com.compomics.util.experiment.identification.matches.SpectrumMatch) Enzyme(com.compomics.util.experiment.biology.enzymes.Enzyme) ArrayList(java.util.ArrayList) PSParameter(com.compomics.util.experiment.identification.peptide_shaker.PSParameter)

Aggregations

PSParameter (com.compomics.util.experiment.identification.peptide_shaker.PSParameter)84 PeptideMatch (com.compomics.util.experiment.identification.matches.PeptideMatch)36 ArrayList (java.util.ArrayList)30 ProteinMatch (com.compomics.util.experiment.identification.matches.ProteinMatch)29 SpectrumMatch (com.compomics.util.experiment.identification.matches.SpectrumMatch)27 Peptide (com.compomics.util.experiment.biology.proteins.Peptide)20 Identification (com.compomics.util.experiment.identification.Identification)19 PeptideAssumption (com.compomics.util.experiment.identification.spectrum_assumptions.PeptideAssumption)17 TreeMap (java.util.TreeMap)16 HashMap (java.util.HashMap)15 SequenceMatchingParameters (com.compomics.util.parameters.identification.advanced.SequenceMatchingParameters)14 SequenceProvider (com.compomics.util.experiment.io.biology.protein.SequenceProvider)13 ModificationParameters (com.compomics.util.parameters.identification.search.ModificationParameters)13 PeptideMatchesIterator (com.compomics.util.experiment.identification.matches_iterators.PeptideMatchesIterator)11 ModificationMatch (com.compomics.util.experiment.identification.matches.ModificationMatch)10 IdentificationParameters (com.compomics.util.parameters.identification.IdentificationParameters)10 HashSet (java.util.HashSet)10 SpectrumProvider (com.compomics.util.experiment.mass_spectrometry.SpectrumProvider)9 SelfUpdatingTableModel (com.compomics.util.gui.tablemodels.SelfUpdatingTableModel)9 TreeSet (java.util.TreeSet)9