Search in sources :

Example 6 with EChartPanel

use of net.sf.mzmine.chartbasics.gui.swing.EChartPanel in project mzmine2 by mzmine.

the class MultiMSMSWindow method updateAllCharts.

/**
 * Create new charts
 */
public void updateAllCharts() {
    msone = null;
    group = new ChartGroup(showCrosshair, showCrosshair, true, false);
    // MS1
    if (createMS1) {
        Scan scan = null;
        Feature best = null;
        for (PeakListRow r : rows) {
            Feature f = raw == null ? r.getBestPeak() : r.getPeak(raw);
            if (f != null && (best == null || f.getHeight() > best.getHeight())) {
                best = f;
            }
        }
        if (best != null) {
            scan = best.getDataFile().getScan(best.getRepresentativeScanNumber());
            EChartPanel cp = SpectrumChartFactory.createScanChartPanel(scan, showTitle, showLegend);
            if (cp != null)
                msone = new ChartViewWrapper(cp);
        }
    } else {
        // pseudo MS1 from all rows and isotope pattern
        EChartPanel cp = PseudoSpectrum.createChartPanel(rows, raw, false, "pseudo");
        if (cp != null) {
            cp.getChart().getLegend().setVisible(showLegend);
            cp.getChart().getTitle().setVisible(showTitle);
            msone = new ChartViewWrapper(cp);
        }
    }
    if (msone != null)
        group.add(msone);
    // MS2 of all rows
    for (PeakListRow row : rows) {
        EChartPanel c = SpectrumChartFactory.createMSMSChartPanel(row, raw, showTitle, showLegend, alwaysShowBest, useBestForMissingRaw);
        if (c != null) {
            group.add(new ChartViewWrapper(c));
        }
    }
    renewCharts(group);
}
Also used : EChartPanel(net.sf.mzmine.chartbasics.gui.swing.EChartPanel) ChartViewWrapper(net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper) PeakListRow(net.sf.mzmine.datamodel.PeakListRow) Scan(net.sf.mzmine.datamodel.Scan) Feature(net.sf.mzmine.datamodel.Feature) ChartGroup(net.sf.mzmine.chartbasics.chartgroups.ChartGroup)

Example 7 with EChartPanel

use of net.sf.mzmine.chartbasics.gui.swing.EChartPanel in project mzmine2 by mzmine.

the class SpectrumChartFactory method createChartPanel.

public static EChartPanel createChartPanel(JFreeChart chart) {
    if (chart == null)
        return null;
    // 
    EChartPanel pn = new EChartPanel(chart);
    XYItemRenderer renderer = chart.getXYPlot().getRenderer();
    PseudoSpectraItemLabelGenerator labelGenerator = new PseudoSpectraItemLabelGenerator(pn);
    renderer.setDefaultItemLabelsVisible(true);
    renderer.setDefaultItemLabelPaint(Color.BLACK);
    renderer.setSeriesItemLabelGenerator(0, labelGenerator);
    return pn;
}
Also used : EChartPanel(net.sf.mzmine.chartbasics.gui.swing.EChartPanel) PseudoSpectraItemLabelGenerator(net.sf.mzmine.modules.visualization.spectra.multimsms.pseudospectra.PseudoSpectraItemLabelGenerator) XYItemRenderer(org.jfree.chart.renderer.xy.XYItemRenderer)

Example 8 with EChartPanel

use of net.sf.mzmine.chartbasics.gui.swing.EChartPanel in project mzmine2 by mzmine.

the class PseudoSpectrum method createChartPanel.

public static EChartPanel createChartPanel(PeakListRow[] group, RawDataFile raw, boolean sum, String title) {
    PseudoSpectrumDataSet data = createDataSet(group, raw, sum);
    if (data == null)
        return null;
    JFreeChart chart = createChart(data, raw, sum, title);
    if (chart != null) {
        EChartPanel pn = new EChartPanel(chart);
        XYItemRenderer renderer = chart.getXYPlot().getRenderer();
        PseudoSpectraItemLabelGenerator labelGenerator = new PseudoSpectraItemLabelGenerator(pn);
        renderer.setDefaultItemLabelsVisible(true);
        renderer.setDefaultItemLabelPaint(Color.BLACK);
        renderer.setSeriesItemLabelGenerator(0, labelGenerator);
        return pn;
    }
    return null;
}
Also used : EChartPanel(net.sf.mzmine.chartbasics.gui.swing.EChartPanel) XYItemRenderer(org.jfree.chart.renderer.xy.XYItemRenderer) JFreeChart(org.jfree.chart.JFreeChart)

Example 9 with EChartPanel

use of net.sf.mzmine.chartbasics.gui.swing.EChartPanel in project mzmine2 by mzmine.

the class VanKrevelenDiagramTask method run.

@Override
public void run() {
    try {
        setStatus(TaskStatus.PROCESSING);
        logger.info("Create Van Krevelen diagram of " + peakList);
        // Task canceled?
        if (isCanceled())
            return;
        JFreeChart chart = null;
        // 2D, if no third dimension was selected
        if (zAxisLabel.equals("none")) {
            chart = create2DVanKrevelenDiagram();
        } else // 3D, if a third dimension was selected
        {
            chart = create3DVanKrevelenDiagram();
        }
        chart.setBackgroundPaint(Color.white);
        // create chart JPanel
        EChartPanel chartPanel = new EChartPanel(chart, true, true, true, true, false);
        // Create Van Krevelen Diagram window
        VanKrevelenDiagramWindow frame = new VanKrevelenDiagramWindow(chart, chartPanel, filteredRows);
        // create chart JPanel
        frame.add(chartPanel, BorderLayout.CENTER);
        // set title properties
        TextTitle chartTitle = chart.getTitle();
        chartTitle.setMargin(5, 0, 0, 0);
        chartTitle.setFont(titleFont);
        LegendTitle legend = chart.getLegend();
        legend.setVisible(false);
        frame.setTitle(title);
        frame.setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
        frame.setBackground(Color.white);
        frame.setVisible(true);
        frame.pack();
        logger.info("Finished creating van Krevelen diagram of " + peakList);
        JOptionPane.showMessageDialog(frame, "Results summary:\n" + displayedFeatures + " feature list rows are displayed in the Van Krevelen diagram.\n" + featuresWithFormulasWithoutCHO + " feature list rows are not displayed, because the annotated molecular formula does not contain the elements C, H, and O.\n" + featuresWithoutFormula + " feature list rows are not displayed, because no molecular formula was assigned.");
        setStatus(TaskStatus.FINISHED);
    } catch (Throwable t) {
        setErrorMessage("Nothing to plot here or some peaks have other identities than molecular formulas.\n" + "Have you annotated your features with molecular formulas?\n" + "You can use the feature list method \"Formula prediction\" to handle the task.");
        setStatus(TaskStatus.ERROR);
    }
}
Also used : TextTitle(org.jfree.chart.title.TextTitle) EChartPanel(net.sf.mzmine.chartbasics.gui.swing.EChartPanel) LegendTitle(org.jfree.chart.title.LegendTitle) JFreeChart(org.jfree.chart.JFreeChart)

Example 10 with EChartPanel

use of net.sf.mzmine.chartbasics.gui.swing.EChartPanel in project mzmine2 by mzmine.

the class MSMSLibrarySubmissionWindow method updateAllChartSelectors.

/**
 * Create new scan selector panels
 */
public void updateAllChartSelectors() {
    group = new ChartGroup(showCrosshair, showCrosshair, true, false);
    pnCharts.removeAll();
    GridLayout layout = new GridLayout(0, 1);
    pnCharts.setLayout(layout);
    if (checkInput()) {
        Integer minSignals = paramSubmit.getParameter(LibrarySubmitParameters.minSignals).getValue();
        Double noiseLevel = paramSubmit.getParameter(LibrarySubmitParameters.noiseLevel).getValue();
        String massListName = paramSubmit.getParameter(LibrarySubmitParameters.massList).getValue();
        if (minSignals != null && noiseLevel != null && massListName != null) {
            ScanSortMode sort = (ScanSortMode) getComboSortMode().getSelectedItem();
            if (rows != null) {
                // create MS2 of all rows
                for (int i = 0; i < rows.length; i++) {
                    PeakListRow row = rows[i];
                    ScanSelectPanel pn = new ScanSelectPanel(row, sort, noiseLevel, minSignals, massListName);
                    pnScanSelect[i] = pn;
                    pn.addChartChangedListener(chart -> regroupCharts());
                    pnCharts.add(pn);
                    // add to group
                    EChartPanel c = pn.getChart();
                    if (c != null) {
                        group.add(new ChartViewWrapper(c));
                    }
                }
            } else if (scanList != null) {
                // all selectors of scanlist
                for (int i = 0; i < scanList.size(); i++) {
                    Scan[] scansEntry = scanList.get(i);
                    ScanSelectPanel pn = new ScanSelectPanel(scansEntry, sort, noiseLevel, minSignals, massListName);
                    pnScanSelect[i] = pn;
                    pn.addChartChangedListener(chart -> regroupCharts());
                    pnCharts.add(pn);
                    // add to group
                    EChartPanel c = pn.getChart();
                    if (c != null) {
                        group.add(new ChartViewWrapper(c));
                    }
                }
            }
        }
        streamSelection().forEach(pn -> {
            pn.setFragmentScan(isFragmentScan);
            // only show exclude/check button if more than 1 entry
            pn.setShowExcludeButton(pnScanSelect.length > 1);
        });
    }
    pnCharts.revalidate();
    pnCharts.repaint();
}
Also used : Color(java.awt.Color) OptionalModuleComponent(net.sf.mzmine.parameters.parametertypes.submodules.OptionalModuleComponent) Arrays(java.util.Arrays) URL(java.net.URL) ItemListener(java.awt.event.ItemListener) DataPoint(net.sf.mzmine.datamodel.DataPoint) JCheckBoxMenuItem(javax.swing.JCheckBoxMenuItem) PeakListRow(net.sf.mzmine.datamodel.PeakListRow) ChartViewWrapper(net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper) EChartPanel(net.sf.mzmine.chartbasics.gui.swing.EChartPanel) Map(java.util.Map) ScanSortMode(net.sf.mzmine.util.scans.sorting.ScanSortMode) LibrarySubmitTask(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.LibrarySubmitTask) UserParameter(net.sf.mzmine.parameters.UserParameter) BorderLayout(java.awt.BorderLayout) JComboBox(javax.swing.JComboBox) JFrame(javax.swing.JFrame) JMenuBar(javax.swing.JMenuBar) ScrollPaneConstants(javax.swing.ScrollPaneConstants) GridBagPanel(net.sf.mzmine.util.components.GridBagPanel) SortingProperty(net.sf.mzmine.util.SortingProperty) Font(java.awt.Font) PeakListRowSorter(net.sf.mzmine.util.PeakListRowSorter) LibraryMetaDataParameters(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.param.LibraryMetaDataParameters) JMenu(javax.swing.JMenu) GUIUtils(net.sf.mzmine.util.GUIUtils) GridBagConstraints(java.awt.GridBagConstraints) Logger(java.util.logging.Logger) LibrarySubmitParameters(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.param.LibrarySubmitParameters) Collectors(java.util.stream.Collectors) Objects(java.util.Objects) Platform(javafx.application.Platform) Dimension(java.awt.Dimension) List(java.util.List) Stream(java.util.stream.Stream) ComboComponent(net.sf.mzmine.parameters.parametertypes.ComboComponent) EmptyBorder(javax.swing.border.EmptyBorder) AbstractMSMSIdentity(net.sf.mzmine.datamodel.identities.ms2.interf.AbstractMSMSIdentity) JPanel(javax.swing.JPanel) Scan(net.sf.mzmine.datamodel.Scan) MZmineCore(net.sf.mzmine.main.MZmineCore) Parameter(net.sf.mzmine.parameters.Parameter) ActionListener(java.awt.event.ActionListener) JSplitPane(javax.swing.JSplitPane) LibrarySubmitModule(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.LibrarySubmitModule) HashMap(java.util.HashMap) LibrarySubmitIonParameters(net.sf.mzmine.modules.peaklistmethods.io.spectraldbsubmit.param.LibrarySubmitIonParameters) MessageFormat(java.text.MessageFormat) ArrayList(java.util.ArrayList) GridLayout(java.awt.GridLayout) IntegerComponent(net.sf.mzmine.parameters.parametertypes.IntegerComponent) DelayedDocumentListener(net.sf.mzmine.framework.listener.DelayedDocumentListener) JMenuItem(javax.swing.JMenuItem) JFreeChart(org.jfree.chart.JFreeChart) Hashtable(java.util.Hashtable) JComponent(javax.swing.JComponent) HelpWindow(net.sf.mzmine.desktop.impl.helpwindow.HelpWindow) MZTolerance(net.sf.mzmine.parameters.parametertypes.tolerances.MZTolerance) JButton(javax.swing.JButton) MigLayout(net.miginfocom.swing.MigLayout) ValueAxis(org.jfree.chart.axis.ValueAxis) ActionEvent(java.awt.event.ActionEvent) ChartGroup(net.sf.mzmine.chartbasics.chartgroups.ChartGroup) Consumer(java.util.function.Consumer) JScrollPane(javax.swing.JScrollPane) SortingDirection(net.sf.mzmine.util.SortingDirection) MassListComponent(net.sf.mzmine.parameters.parametertypes.MassListComponent) OptionalParameterComponent(net.sf.mzmine.parameters.parametertypes.OptionalParameterComponent) JLabel(javax.swing.JLabel) DialogLoggerUtil(net.sf.mzmine.util.DialogLoggerUtil) PseudoSpectrumDataSet(net.sf.mzmine.modules.visualization.spectra.multimsms.pseudospectra.PseudoSpectrumDataSet) DoubleComponent(net.sf.mzmine.parameters.parametertypes.DoubleComponent) GridLayout(java.awt.GridLayout) EChartPanel(net.sf.mzmine.chartbasics.gui.swing.EChartPanel) ChartViewWrapper(net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper) PeakListRow(net.sf.mzmine.datamodel.PeakListRow) ScanSortMode(net.sf.mzmine.util.scans.sorting.ScanSortMode) DataPoint(net.sf.mzmine.datamodel.DataPoint) ChartGroup(net.sf.mzmine.chartbasics.chartgroups.ChartGroup)

Aggregations

EChartPanel (net.sf.mzmine.chartbasics.gui.swing.EChartPanel)11 JFreeChart (org.jfree.chart.JFreeChart)6 Dimension (java.awt.Dimension)3 BorderLayout (java.awt.BorderLayout)2 DecimalFormat (java.text.DecimalFormat)2 JButton (javax.swing.JButton)2 ChartGroup (net.sf.mzmine.chartbasics.chartgroups.ChartGroup)2 ChartViewWrapper (net.sf.mzmine.chartbasics.gui.wrapper.ChartViewWrapper)2 PeakListRow (net.sf.mzmine.datamodel.PeakListRow)2 Scan (net.sf.mzmine.datamodel.Scan)2 XYItemRenderer (org.jfree.chart.renderer.xy.XYItemRenderer)2 LegendTitle (org.jfree.chart.title.LegendTitle)2 TextTitle (org.jfree.chart.title.TextTitle)2 XYSeries (org.jfree.data.xy.XYSeries)2 XYSeriesCollection (org.jfree.data.xy.XYSeriesCollection)2 Color (java.awt.Color)1 FlowLayout (java.awt.FlowLayout)1 Font (java.awt.Font)1 GridBagConstraints (java.awt.GridBagConstraints)1 GridLayout (java.awt.GridLayout)1