use of net.sf.mzmine.util.ExitCode in project mzmine2 by mzmine.
the class FormulaPredictionModule method showSingleRowIdentificationDialog.
public static void showSingleRowIdentificationDialog(PeakListRow row) {
ParameterSet parameters = MZmineCore.getConfiguration().getModuleParameters(FormulaPredictionModule.class);
double mzValue = row.getAverageMZ();
parameters.getParameter(FormulaPredictionParameters.neutralMass).setIonMass(mzValue);
int bestScanNum = row.getBestPeak().getRepresentativeScanNumber();
if (bestScanNum > 0) {
RawDataFile dataFile = row.getBestPeak().getDataFile();
Scan bestScan = dataFile.getScan(bestScanNum);
PolarityType scanPolarity = bestScan.getPolarity();
switch(scanPolarity) {
case POSITIVE:
parameters.getParameter(FormulaPredictionParameters.neutralMass).setIonType(IonizationType.POSITIVE_HYDROGEN);
break;
case NEGATIVE:
parameters.getParameter(FormulaPredictionParameters.neutralMass).setIonType(IonizationType.NEGATIVE_HYDROGEN);
break;
default:
break;
}
}
int charge = row.getBestPeak().getCharge();
if (charge > 0) {
parameters.getParameter(FormulaPredictionParameters.neutralMass).setCharge(charge);
}
ExitCode exitCode = parameters.showSetupDialog(MZmineCore.getDesktop().getMainWindow(), true);
if (exitCode != ExitCode.OK) {
return;
}
SingleRowPredictionTask newTask = new SingleRowPredictionTask(parameters.cloneParameterSet(), row);
// execute the sequence
MZmineCore.getTaskController().addTask(newTask);
}
use of net.sf.mzmine.util.ExitCode in project mzmine2 by mzmine.
the class MassDetectionParameters method showSetupDialog.
@Override
public ExitCode showSetupDialog(Window parent, boolean valueCheckRequired) {
ExitCode exitCode = super.showSetupDialog(parent, valueCheckRequired);
// If the parameters are not complete, let's just stop here
if (exitCode != ExitCode.OK)
return exitCode;
RawDataFile[] selectedFiles = getParameter(dataFiles).getValue().getMatchingRawDataFiles();
// If no file selected (e.g. in batch mode setup), just return
if ((selectedFiles == null) || (selectedFiles.length == 0))
return exitCode;
// Do an additional check for centroid/continuous data and show a
// warning if there is a potential problem
long numCentroided = 0, numProfile = 0;
ScanSelection scanSel = getParameter(scanSelection).getValue();
for (RawDataFile file : selectedFiles) {
Scan[] scans = scanSel.getMatchingScans(file);
for (Scan s : scans) {
if (s.getSpectrumType() == MassSpectrumType.CENTROIDED)
numCentroided++;
else
numProfile++;
}
}
// If no scans found, let's just stop here
if (numCentroided + numProfile == 0)
return exitCode;
// Do we have mostly centroided scans?
final double proportionCentroided = (double) numCentroided / (numCentroided + numProfile);
final boolean mostlyCentroided = proportionCentroided > 0.5;
logger.finest("Proportion of scans estimated to be centroided: " + proportionCentroided);
// Check the selected mass detector
String massDetectorName = getParameter(massDetector).getValue().toString();
if (mostlyCentroided && (!massDetectorName.startsWith("Centroid"))) {
String msg = "MZmine thinks you are running the profile mode mass detector on (mostly) centroided scans. This will likely produce wrong results. Try the Centroid mass detector instead.";
MZmineCore.getDesktop().displayMessage(null, msg);
}
if ((!mostlyCentroided) && (massDetectorName.startsWith("Centroid"))) {
String msg = "MZmine thinks you are running the centroid mass detector on (mostly) profile scans. This will likely produce wrong results.";
MZmineCore.getDesktop().displayMessage(null, msg);
}
return exitCode;
}
use of net.sf.mzmine.util.ExitCode in project mzmine2 by mzmine.
the class MzRangeMassCalculatorModule method showRangeCalculationDialog.
/**
* Shows the calculation dialog and returns the calculated m/z range. May return null in case user
* clicked Cancel.
*/
@Nullable
public static Range<Double> showRangeCalculationDialog() {
ParameterSet myParameters = MZmineCore.getConfiguration().getModuleParameters(MzRangeMassCalculatorModule.class);
if (myParameters == null)
return null;
ExitCode exitCode = myParameters.showSetupDialog(null, true);
if (exitCode != ExitCode.OK)
return null;
Double mz = myParameters.getParameter(MzRangeMassCalculatorParameters.mz).getValue();
MZTolerance mzTolerance = myParameters.getParameter(MzRangeMassCalculatorParameters.mzTolerance).getValue();
if ((mz == null) || (mzTolerance == null))
return null;
Range<Double> mzRange = mzTolerance.getToleranceRange(mz);
return mzRange;
}
use of net.sf.mzmine.util.ExitCode in project mzmine2 by mzmine.
the class TwoDVisualizerModule method show2DVisualizerSetupDialog.
public static void show2DVisualizerSetupDialog(RawDataFile dataFile, Range<Double> mzRange, Range<Double> rtRange) {
ParameterSet parameters = MZmineCore.getConfiguration().getModuleParameters(TwoDVisualizerModule.class);
parameters.getParameter(TwoDVisualizerParameters.dataFiles).setValue(RawDataFilesSelectionType.SPECIFIC_FILES, new RawDataFile[] { dataFile });
if (rtRange != null)
parameters.getParameter(TwoDVisualizerParameters.scanSelection).setValue(new ScanSelection(rtRange, 1));
if (mzRange != null)
parameters.getParameter(TwoDVisualizerParameters.mzRange).setValue(mzRange);
ExitCode exitCode = parameters.showSetupDialog(MZmineCore.getDesktop().getMainWindow(), true);
if (exitCode != ExitCode.OK)
return;
ScanSelection scanSel = parameters.getParameter(TwoDVisualizerParameters.scanSelection).getValue();
Scan[] scans = scanSel.getMatchingScans(dataFile);
rtRange = ScanUtils.findRtRange(scans);
mzRange = parameters.getParameter(TwoDVisualizerParameters.mzRange).getValue();
TwoDVisualizerWindow newWindow = new TwoDVisualizerWindow(dataFile, scans, rtRange, mzRange, parameters);
newWindow.setVisible(true);
}
use of net.sf.mzmine.util.ExitCode in project mzmine2 by mzmine.
the class MZmineCore method main.
/**
* Main method
*/
@SuppressWarnings("unchecked")
public static void main(String[] args) {
// In the beginning, set the default locale to English, to avoid
// problems with conversion of numbers etc. (e.g. decimal separator may
// be . or , depending on the locale)
Locale.setDefault(new Locale("en", "US"));
logger.info("Starting MZmine " + getMZmineVersion());
// Remove old temporary files, if we find any
TmpFileCleanup.removeOldTemporaryFiles();
logger.fine("Loading core classes..");
// create instance of configuration
configuration = new MZmineConfigurationImpl();
// create instances of core modules
projectManager = new ProjectManagerImpl();
taskController = new TaskControllerImpl();
logger.fine("Initializing core classes..");
projectManager.initModule();
taskController.initModule();
logger.fine("Loading modules");
for (Class<?> moduleClass : MZmineModulesList.MODULES) {
try {
logger.finest("Loading module " + moduleClass.getName());
// Create instance and init module
MZmineModule moduleInstance = (MZmineModule) moduleClass.newInstance();
// Add to the module list
initializedModules.put(moduleClass, moduleInstance);
// Create an instance of parameter set
Class<? extends ParameterSet> parameterSetClass = moduleInstance.getParameterSetClass();
ParameterSet parameterSetInstance = parameterSetClass.newInstance();
// Add the parameter set to the configuration
configuration.setModuleParameters((Class<MZmineModule>) moduleClass, parameterSetInstance);
} catch (Throwable e) {
logger.log(Level.SEVERE, "Could not load module " + moduleClass, e);
e.printStackTrace();
continue;
}
}
// If we have no arguments, run in GUI mode, otherwise run in batch mode
if (args.length == 0) {
// Create the Swing GUI in the event-dispatching thread, as is
// generally recommended
Runnable desktopInit = new Runnable() {
@Override
public void run() {
logger.fine("Initializing GUI");
MainWindow mainWindow = new MainWindow();
desktop = mainWindow;
mainWindow.initModule();
// Activate project - bind it to the desktop's project tree
MZmineProjectImpl currentProject = (MZmineProjectImpl) projectManager.getCurrentProject();
currentProject.activateProject();
// add desktop menu icon
for (Class<?> moduleClass : MZmineModulesList.MODULES) {
MZmineModule module = initializedModules.get(moduleClass);
if (module instanceof MZmineRunnableModule) {
mainWindow.getMainMenu().addMenuItemForModule((MZmineRunnableModule) module);
}
}
}
};
try {
SwingUtilities.invokeAndWait(desktopInit);
} catch (Exception e) {
logger.log(Level.SEVERE, "Could not initialize GUI", e);
e.printStackTrace();
System.exit(1);
}
} else {
desktop = new HeadLessDesktop();
}
// load configuration
if (MZmineConfiguration.CONFIG_FILE.exists() && MZmineConfiguration.CONFIG_FILE.canRead()) {
try {
configuration.loadConfiguration(MZmineConfiguration.CONFIG_FILE);
} catch (Exception e) {
e.printStackTrace();
}
}
// if we have GUI, show it now
if (desktop.getMainWindow() != null && !(desktop instanceof HeadLessDesktop)) {
// update the size and position of the main window
ParameterSet paramSet = configuration.getPreferences();
WindowSettingsParameter settings = paramSet.getParameter(MZminePreferences.windowSetttings);
settings.applySettingsToWindow(desktop.getMainWindow());
// add last project menu items
if (desktop instanceof MainWindow) {
((MainWindow) desktop).createLastUsedProjectsMenu(configuration.getLastProjects());
// listen for changes
configuration.getLastProjectsParameter().addFileListChangedListener(list -> {
// new list of last used projects
Desktop desk = getDesktop();
if (desk instanceof MainWindow) {
((MainWindow) desk).createLastUsedProjectsMenu(list);
}
});
}
// show the GUI
logger.info("Showing main window");
desktop.getMainWindow().setVisible(true);
// show the welcome message
desktop.setStatusBarText("Welcome to MZmine 2!");
// Check for updated version
NewVersionCheck NVC = new NewVersionCheck(CheckType.DESKTOP);
Thread nvcThread = new Thread(NVC);
nvcThread.setPriority(Thread.MIN_PRIORITY);
nvcThread.start();
// Tracker
GoogleAnalyticsTracker GAT = new GoogleAnalyticsTracker("MZmine Loaded (GUI mode)", "/JAVA/Main/GUI");
Thread gatThread = new Thread(GAT);
gatThread.setPriority(Thread.MIN_PRIORITY);
gatThread.start();
// register shutdown hook only if we have GUI - we don't want to
// save configuration on exit if we only run a batch
ShutDownHook shutDownHook = new ShutDownHook();
Runtime.getRuntime().addShutdownHook(shutDownHook);
}
// mode
if (args.length > 0 && desktop instanceof HeadLessDesktop) {
// Tracker
GoogleAnalyticsTracker GAT = new GoogleAnalyticsTracker("MZmine Loaded (Headless mode)", "/JAVA/Main/GUI");
Thread gatThread = new Thread(GAT);
gatThread.setPriority(Thread.MIN_PRIORITY);
gatThread.start();
File batchFile = new File(args[0]);
if ((!batchFile.exists()) || (!batchFile.canRead())) {
logger.severe("Cannot read batch file " + batchFile);
System.exit(1);
}
ExitCode exitCode = BatchModeModule.runBatch(projectManager.getCurrentProject(), batchFile);
if (exitCode == ExitCode.OK)
System.exit(0);
else
System.exit(1);
}
}
Aggregations