use of net.sf.mzmine.datamodel.Scan in project mzmine2 by mzmine.
the class ProjectTreeMouseHandler method handleDoubleClickEvent.
private void handleDoubleClickEvent(MouseEvent e) {
TreePath clickedPath = tree.getPathForLocation(e.getX(), e.getY());
if (clickedPath == null)
return;
DefaultMutableTreeNode node = (DefaultMutableTreeNode) clickedPath.getLastPathComponent();
Object clickedObject = node.getUserObject();
if (clickedObject instanceof RawDataFile) {
RawDataFile clickedFile = (RawDataFile) clickedObject;
TICVisualizerModule.setupNewTICVisualizer(clickedFile);
}
if (clickedObject instanceof PeakList) {
PeakList clickedPeakList = (PeakList) clickedObject;
PeakListTableModule.showNewPeakListVisualizerWindow(clickedPeakList);
}
if (clickedObject instanceof Scan) {
Scan clickedScan = (Scan) clickedObject;
SpectraVisualizerModule.showNewSpectrumWindow(clickedScan.getDataFile(), clickedScan.getScanNumber());
}
if (clickedObject instanceof MassList) {
MassList clickedMassList = (MassList) clickedObject;
Scan clickedScan = clickedMassList.getScan();
SpectraVisualizerWindow window = SpectraVisualizerModule.showNewSpectrumWindow(clickedScan.getDataFile(), clickedScan.getScanNumber());
MassListDataSet dataset = new MassListDataSet(clickedMassList);
window.addDataSet(dataset, Color.green);
}
if (clickedObject instanceof PeakListRow) {
PeakListRow clickedPeak = (PeakListRow) clickedObject;
PeakSummaryVisualizerModule.showNewPeakSummaryWindow(clickedPeak);
}
}
use of net.sf.mzmine.datamodel.Scan in project mzmine2 by mzmine.
the class ScanSelectPanel method createChart.
/**
* Create chart of selected scan
*/
public void createChart() {
setValidSelection(false);
pnChart.removeAll();
if (scans != null && !scans.isEmpty()) {
if (spectrumPlot == null) {
spectrumPlot = new SpectraPlot(this, false);
if (listener != null)
// chart has changed
listener.accept(spectrumPlot);
}
spectrumPlot.removeAllDataSets();
DataPointsDataSet data = new DataPointsDataSet("Data", getFilteredDataPoints());
// green
spectrumPlot.addDataSet(data, colorUsedData, false);
if (showRemovedData) {
// orange
DataPointsDataSet dataRemoved = new DataPointsDataSet("Removed", getFilteredDataPointsRemoved());
spectrumPlot.addDataSet(dataRemoved, colorRemovedData, false);
}
spectrumPlot.getChart().getLegend().setVisible(showLegend);
spectrumPlot.setMaximumSize(new Dimension(chartSize.width, 10000));
spectrumPlot.setPreferredSize(chartSize);
pnChart.add(spectrumPlot, BorderLayout.CENTER);
Scan scan = scans.get(selectedScanI);
analyzeScan(scan);
applySelectionState();
setValidSelection(true);
} else {
// add error label
JLabel error = new JLabel(MessageFormat.format("NO MS2 SPECTRA: 0 of {0} match the minimum criteria", getTotalScans()));
error.setFont(new Font("Tahoma", Font.BOLD, 13));
error.setHorizontalAlignment(SwingConstants.CENTER);
error.setForeground(new Color(220, 20, 60));
pnChart.add(error, BorderLayout.CENTER);
//
}
// set next and prev button enabled
btnPrev.setEnabled(selectedScanI - 1 >= 0);
btnNext.setEnabled(scans != null && selectedScanI + 1 < scans.size());
revalidate();
repaint();
}
use of net.sf.mzmine.datamodel.Scan in project mzmine2 by mzmine.
the class ScanSelectPanel method getFilteredDataPointsRemoved.
/**
* Removed data points
*
* @return
*/
@Nullable
public DataPoint[] getFilteredDataPointsRemoved() {
if (scans != null && !scans.isEmpty()) {
Scan scan = scans.get(selectedScanI);
MassList massList = ScanUtils.getMassListOrFirst(scan, massListName);
if (massList != null)
return ScanUtils.getBelowThreshold(massList.getDataPoints(), noiseLevel);
}
return null;
}
use of net.sf.mzmine.datamodel.Scan in project mzmine2 by mzmine.
the class ScanSelectPanel method setMZandChargeFromScan.
/**
*/
public void setMZandChargeFromScan() {
// MS1
if (!isFragmentScan)
return;
if (scans != null && !scans.isEmpty()) {
Scan scan = scans.get(selectedScanI);
double mz = scan.getPrecursorMZ();
if (mz == 0) {
if (row != null)
mz = row.getAverageMZ();
}
int charge = scan.getPrecursorCharge();
if (charge == 0 && row != null)
charge = row.getRowCharge();
if (charge == 0)
charge = 1;
// set as text
txtCharge.setText(String.valueOf(charge));
txtPrecursorMZ.setText(MZmineCore.getConfiguration().getMZFormat().format(mz));
}
}
use of net.sf.mzmine.datamodel.Scan in project mzmine2 by mzmine.
the class SQLExportTask method exportPeakListRow.
private void exportPeakListRow(PeakListRow row) throws SQLException {
// Cancel?
if (isCanceled()) {
return;
}
// Value for looping through raw data files
boolean loopDataFiles = false;
StringBuilder sql = new StringBuilder();
sql.append("INSERT INTO ");
sql.append(tableName);
sql.append(" (");
for (int i = 0; i < exportColumns.getRowCount(); i++) {
sql.append(exportColumns.getValueAt(i, 0));
if (i < exportColumns.getRowCount() - 1)
sql.append(",");
}
sql.append(" ) VALUES (");
for (int i = 0; i < exportColumns.getRowCount(); i++) {
sql.append("?");
if (i < exportColumns.getRowCount() - 1)
sql.append(",");
}
sql.append(")");
PreparedStatement statement = dbConnection.prepareStatement(sql.toString());
if (row == null) {
for (int i = 0; i < exportColumns.getRowCount(); i++) {
SQLExportDataType dataType = (SQLExportDataType) exportColumns.getValueAt(i, 1);
String dataValue = (String) exportColumns.getValueAt(i, 2);
switch(dataType) {
case CONSTANT:
statement.setString(i + 1, dataValue);
break;
case RAWFILE:
RawDataFile[] rawdatafiles = peakList.getRawDataFiles();
statement.setString(i + 1, rawdatafiles[0].getName());
break;
default:
statement.setString(i + 1, null);
break;
}
}
statement.executeUpdate();
} else {
for (RawDataFile rawDataFile : row.getRawDataFiles()) {
Feature peak = row.getPeak(rawDataFile);
for (int i = 0; i < exportColumns.getRowCount(); i++) {
SQLExportDataType dataType = (SQLExportDataType) exportColumns.getValueAt(i, 1);
String dataValue = (String) exportColumns.getValueAt(i, 2);
switch(dataType) {
case CONSTANT:
statement.setString(i + 1, dataValue);
break;
case MZ:
statement.setDouble(i + 1, row.getAverageMZ());
break;
case RT:
statement.setDouble(i + 1, row.getAverageRT());
break;
case ID:
statement.setInt(i + 1, row.getID());
break;
case PEAKCHARGE:
statement.setDouble(i + 1, peak.getCharge());
loopDataFiles = true;
break;
case PEAKDURATION:
statement.setDouble(i + 1, RangeUtils.rangeLength(peak.getRawDataPointsRTRange()));
loopDataFiles = true;
break;
case PEAKSTATUS:
statement.setString(i + 1, peak.getFeatureStatus().name());
loopDataFiles = true;
break;
case PEAKMZ:
statement.setDouble(i + 1, peak.getMZ());
loopDataFiles = true;
break;
case PEAKRT:
statement.setDouble(i + 1, peak.getRT());
loopDataFiles = true;
break;
case PEAKRT_START:
statement.setDouble(i + 1, peak.getRawDataPointsRTRange().lowerEndpoint());
loopDataFiles = true;
break;
case PEAKRT_END:
statement.setDouble(i + 1, peak.getRawDataPointsRTRange().upperEndpoint());
loopDataFiles = true;
break;
case PEAKHEIGHT:
statement.setDouble(i + 1, peak.getHeight());
loopDataFiles = true;
break;
case PEAKAREA:
statement.setDouble(i + 1, peak.getArea());
loopDataFiles = true;
break;
case DATAPOINTS:
statement.setDouble(i + 1, peak.getScanNumbers().length);
loopDataFiles = true;
break;
case FWHM:
statement.setDouble(i + 1, peak.getFWHM());
loopDataFiles = true;
break;
case TAILINGFACTOR:
statement.setDouble(i + 1, peak.getTailingFactor());
loopDataFiles = true;
break;
case ASYMMETRYFACTOR:
statement.setDouble(i + 1, peak.getAsymmetryFactor());
loopDataFiles = true;
break;
case RAWFILE:
statement.setString(i + 1, rawDataFile.getName());
loopDataFiles = true;
break;
case HEIGHT:
statement.setDouble(i + 1, row.getAverageHeight());
break;
case AREA:
statement.setDouble(i + 1, row.getAverageArea());
break;
case COMMENT:
statement.setString(i + 1, row.getComment());
break;
case IDENTITY:
PeakIdentity id = row.getPreferredPeakIdentity();
if (id != null) {
statement.setString(i + 1, id.getName());
} else {
statement.setNull(i + 1, Types.VARCHAR);
}
break;
case ISOTOPEPATTERN:
IsotopePattern isotopes = row.getBestIsotopePattern();
if (isotopes == null) {
statement.setNull(i + 1, Types.BLOB);
break;
}
DataPoint[] dataPoints = isotopes.getDataPoints();
byte[] bytes = ScanUtils.encodeDataPointsToBytes(dataPoints);
ByteArrayInputStream is = new ByteArrayInputStream(bytes);
statement.setBlob(i + 1, is);
break;
case MSMS:
int msmsScanNum = row.getBestPeak().getMostIntenseFragmentScanNumber();
// Check if there is any MS/MS scan
if (msmsScanNum <= 0) {
statement.setNull(i + 1, Types.BLOB);
break;
}
RawDataFile dataFile = row.getBestPeak().getDataFile();
Scan msmsScan = dataFile.getScan(msmsScanNum);
MassList msmsMassList = msmsScan.getMassList(dataValue);
// Check if there is a masslist for the scan
if (msmsMassList == null) {
statement.setNull(i + 1, Types.BLOB);
break;
}
dataPoints = msmsMassList.getDataPoints();
bytes = ScanUtils.encodeDataPointsToBytes(dataPoints);
is = new ByteArrayInputStream(bytes);
statement.setBlob(i + 1, is);
break;
default:
break;
}
}
statement.executeUpdate();
// data files in feature list
if (!loopDataFiles) {
break;
}
}
}
}
Aggregations