openchrom / openchrom Goto Github PK
View Code? Open in Web Editor NEWVisualization and Analysis of mass spectrometric and chromatographic data.
Home Page: https://www.openchrom.net
License: Eclipse Public License 1.0
Visualization and Analysis of mass spectrometric and chromatographic data.
Home Page: https://www.openchrom.net
License: Eclipse Public License 1.0
Importing a TXT file and then exporting it again does not yields the same result.
This is because of the implementation of the DetectorSetting equals method that only takes the start/stop rt into account.
A new EJML version with package version 0.38.x is available we should check if we can upgrade the NMR module to use this version as it includes some bugfixes and improvements.
@alexstark4 please have a look at this @lorenzgerber might can help with question regarding changed class/package names.
A hierarchical view of the identified organisms with links to https://www.ncbi.nlm.nih.gov/taxonomy might be helpful to get a better overview.
Selecting a reference chromatogram is done by its filename.
The resulting entries in the drop down menu in the Chromatogram Editor are showing the data name. This is a bit confusing.
Interestingly, the data name is not present in OpenChrom anywhere else as far I can see.
Looking in the header data by toggling the overview mode shows the Data Name in raw files from Chemstation files, but not in .odb files.
Also the date (of measurement) is the date of creating the file in .odb header data.
I follow the QuickStart in developer manual,but there's still appear many compile error .
Does any where I got wrong about the configuration?
@laeubi
The ion signals extractor crashes, when the extracted chromatogram range contains empty scans. Empty scans means, that no m/z value is stored, e.g. when the detector is turned to off.
A filter is available "Remove Empty Scans". This should be used in case one assumes that empty scans are contained.
Anyways, the signal extractor shall be fixed.
A profile PDF report to list the substances and Area% values shall be added.
Due to the following bug
https://bugs.eclipse.org/bugs/show_bug.cgi?id=559148
OpenChrom must currently stick to 1.5.1 Tycho version. As soon as a new Tycho version is available, the workaround could be removed.
Put the DNA one letter code above the peak including quality metrics. Should be possible with the greatly enhanced SWT Chart library from the Eclipse Advanced Visualization Project.
I do not get sufficient results by subtracting ms spectra. I'm going to show you with some screen shots, maybe it is just me...
This is what the advanced MCR-AR detector finds (but with no good matches):
This is what the first derivative detector finds:
Now, trying to subtract a background spectra just from the beginning of the peak.
selecting the spectra for subtraction:
It seems to me that the relevant m/z are subtracted rather than the background. Of cause, the peak identifier does not show up matches.
Just for comparison with Chemstation the same peak looks like this:
Selecting the background for subtraction:
And subtractiting the spectra leads to this with a quite good match:
What am I doing wrong or how can be subtract result be improved in OpenChrom?
Everything appears to run OK connecting with the NIST DB as I have highlighted peaks in my peak list and run the identifier command. I get a message with a green status bar that it may take a few minutes. No errors are thrown. However the targets view doesn't get populated with any compound ids.
Also it looks like some .HLM files are generated in the NIST directory when I run the program.
I'm using OpenChrom Community Edition OpenChrom Community Edition (Dalton) 1.3.0.201808081331
And NIST version 2.3
Any ideas what I am missing?
If the Window for the comparison scan modus is activated it is refreshed every time when clicking in the peak list table or the targets table.
In case of right click in these tables the context menu disappears due to refreshing the comparison scan modus window.
Therefore, the context menu of right clicks are not available.
This is useful for simple scenarios where no special identification is performed.
Saving MSL files after modification does not lead to updated files.
"Save as" works.
I asked a question on stackoverflow but don't have the reputation yet to create a new tag for openchrom. Would someone who does have enough reputation do this?
It is a very nice feature to combine peaks with the same name or CAS.
But this does not seems to be for peaks with close retention times only.
It also combines peaks with the same name, retention time difference of more than 4 minutes and with other peaks in between.
This leads to loosing peaks, since all peaks with sooner retention time are not present in the exported list.
Zooming into m/z specta in the Comparison Scan Mode window may lead to loss of single mass bars.
It occures when the zoom does not include the maximum value of the mass bar. Then, the m/z value does not exist in the zoomed view anymore.
I tried to export the OpenChrom .product file and I get:
Cannot complete the install because one or more required items could not be found.
Software being installed: OpenChrom Analytics Edition (Lawrence) 1.4.0.201910161021 (net.openchrom.rcp.compilation.community.product.id 1.4.0.201910161021)
Missing requirement: CDK Support 1.4.0.201909170105 (net.openchrom.chromatogram.msd.identifier.supplier.cdk.feature.feature.group 1.4.0.201909170105) requires 'net.openchrom.thirdpartylibraries.cdk.feature.feature.group 0.0.0' but it could not be found
Cannot satisfy dependency:
Cannot satisfy dependency:
Similar to #26 we should provide a user friendly way to edit the Identifier settings.
The created file with filename {chromatogram_name}{extension} misses the . between name und fileextension.
Other exports with this kind of filename creation contain the .
The SOPA https://www.ebi.ac.uk/seqdb/confluence/display/WEBSERVICES/EMBL-EBI+Web+Services might be promising. The API seems to be a bit more modern compared to the traditional queued NCBI web blast. I hope for better feedback of remaining time and structured data as return, which would make crafting good UI easier.
and the original repository https://github.com/OpenChrom/GeneIdent is archived so I can't work with the issues as well.
Views, like the Molecule View, have to be activated every time starting the software.
Saveing properties like order and width of columns in tables would be smooth, too.
Improve the SMILES generator by letting the user define the settings.
Sorting the Peak/Scan List by clicking on the column header does not work propertly for the column Width and Name.
The latter only works as aspected if all names are filled.
Show the results in a table similar to the NCBI BLAST web interface.
Currently the User is only presented with a single textfield and some basic regex-validation.
Due to the complex setup with many values this is not very User-Friendly as it is hard to guess correct settings if something gas gone wrong in-between.
currently only VV and BB are supported with one fixed algorithm. It would be good if the user could select more or even alternative Detector Types for different Use-Cases.
Create a template report. The template defines, which peaks shall be reported.
It is not possible to save a copy via "Save as" of process methods.
By clicking nothing happens.
The only way is to rename the process method in the file explorer.
Afterwards OpenChrom asks for a new saving location.
The MoleculeView is not updated by selecting a Peak in the Chromatogram Editor.
currently one can supply start/stop and traces, bu especially with the UI- Part is would be very useful to have an optional "comment" that a user can provide and that is displayed, so it is easier to identify the peak that is currently reviewed
Should be easy with BioJava.
Problems could occur when trying to parse large CDF files > 1 GB. The current implementation shall be optimized to parse the data in forced nominal modus.
It appears that processing steps fail after the "Chromatogram Baseline Subtract Filter" has been applied.
Add a UI method to review peaks and identifications.
The template peak detector is broken under Linux currently. The service is null:
` public static Collection<TemplatePeakDetector<?>> getDetectors() {
ProcessorFactory service = serviceTracker.getService();
if(service != null) {
return service.getProcessors(ProcessorFactory.genericClass(TemplatePeakDetector.class), (always, ever) -> true);
}
return Collections.emptyList();
}`
Some errors occur on the comand line:
`!ENTRY org.apache.felix.scr 4 0 2020-02-10 14:16:40.931
!MESSAGE Circular reference detected trying to get service {org.eclipse.chemclipse.processing.ProcessorFactory}={service.id=218, service.bundleid=422, service.scope=bundle, component.name=org.eclipse.chemclipse.processing.internal.OSGiFilterFactory, component.id=171}
stack of references: ServiceReference: {org.eclipse.chemclipse.processing.ProcessorFactory}={service.id=218, service.bundleid=422, service.scope=bundle, component.name=org.eclipse.chemclipse.processing.internal.OSGiFilterFactory, component.id=171}
ServiceReference: {org.eclipse.chemclipse.msd.model.detector.TemplatePeakDetector, org.eclipse.chemclipse.processing.detector.Detector, org.eclipse.chemclipse.processing.Processor}={service.id=71, service.bundleid=177, service.scope=bundle, component.name=net.openchrom.xxd.process.supplier.templates.detector.DefaultTemplatePeakDetector, component.id=22}
!STACK 0
java.lang.Exception: stack trace
at org.apache.felix.scr.impl.ComponentRegistry.enterCreate(ComponentRegistry.java:467)
at org.apache.felix.scr.impl.BundleComponentActivator.enterCreate(BundleComponentActivator.java:809)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:806)
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210)
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111)
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:524)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461)
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624)
at org.osgi.util.tracker.ServiceTracker.addingService(ServiceTracker.java:416)
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:943)
at org.osgi.util.tracker.ServiceTracker$Tracked.customizerAdding(ServiceTracker.java:1)
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.trackInitial(AbstractTracked.java:183)
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:321)
at org.osgi.util.tracker.ServiceTracker.open(ServiceTracker.java:264)
at net.openchrom.xxd.process.supplier.templates.Activator.start(Activator.java:43)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:779)
at org.eclipse.osgi.internal.framework.BundleContextImpl$3.run(BundleContextImpl.java:1)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.framework.BundleContextImpl.startActivator(BundleContextImpl.java:772)
at org.eclipse.osgi.internal.framework.BundleContextImpl.start(BundleContextImpl.java:729)
at org.eclipse.osgi.internal.framework.EquinoxBundle.startWorker0(EquinoxBundle.java:1002)
at org.eclipse.osgi.internal.framework.EquinoxBundle$EquinoxModule.startWorker(EquinoxBundle.java:354)
at org.eclipse.osgi.container.Module.doStart(Module.java:581)
at org.eclipse.osgi.container.Module.start(Module.java:449)
at org.eclipse.osgi.framework.util.SecureAction.start(SecureAction.java:468)
at org.eclipse.osgi.internal.hooks.EclipseLazyStarter.postFindLocalClass(EclipseLazyStarter.java:114)
at org.eclipse.osgi.internal.loader.classpath.ClasspathManager.findLocalClass(ClasspathManager.java:505)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.findLocalClass(ModuleClassLoader.java:328)
at org.eclipse.osgi.internal.loader.BundleLoader.findLocalClass(BundleLoader.java:392)
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:470)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:419)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:411)
at org.eclipse.osgi.internal.loader.ModuleClassLoader.loadClass(ModuleClassLoader.java:150)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at org.eclipse.osgi.internal.framework.EquinoxBundle.loadClass(EquinoxBundle.java:609)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.initDependencyManagers(AbstractComponentManager.java:992)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1019)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:860)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getService(SingleComponentManager.java:824)
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse$1.run(ServiceFactoryUse.java:212)
at java.security.AccessController.doPrivileged(Native Method)
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.factoryGetService(ServiceFactoryUse.java:210)
at org.eclipse.osgi.internal.serviceregistry.ServiceFactoryUse.getService(ServiceFactoryUse.java:111)
at org.eclipse.osgi.internal.serviceregistry.ServiceConsumer$2.getService(ServiceConsumer.java:45)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistrationImpl.getService(ServiceRegistrationImpl.java:524)
at org.eclipse.osgi.internal.serviceregistry.ServiceRegistry.getService(ServiceRegistry.java:461)
at org.eclipse.osgi.internal.framework.BundleContextImpl.getService(BundleContextImpl.java:624)
at org.apache.felix.scr.impl.manager.SingleRefPair.getServiceObject(SingleRefPair.java:72)
at org.apache.felix.scr.impl.inject.BindMethod.getServiceObject(BindMethod.java:651)
at org.apache.felix.scr.impl.manager.DependencyManager.getServiceObject(DependencyManager.java:2206)
at org.apache.felix.scr.impl.manager.DependencyManager$MultipleDynamicCustomizer.prebind(DependencyManager.java:403)
at org.apache.felix.scr.impl.manager.DependencyManager.prebind(DependencyManager.java:1520)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.collectDependencies(AbstractComponentManager.java:1022)
at org.apache.felix.scr.impl.manager.SingleComponentManager.getServiceInternal(SingleComponentManager.java:860)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.activateInternal(AbstractComponentManager.java:755)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enableInternal(AbstractComponentManager.java:675)
at org.apache.felix.scr.impl.manager.AbstractComponentManager.enable(AbstractComponentManager.java:430)
at org.apache.felix.scr.impl.manager.ConfigurableComponentHolder.enableComponents(ConfigurableComponentHolder.java:657)
at org.apache.felix.scr.impl.BundleComponentActivator.initialEnable(BundleComponentActivator.java:341)
at org.apache.felix.scr.impl.Activator.loadComponents(Activator.java:387)
at org.apache.felix.scr.impl.Activator.access$200(Activator.java:52)
at org.apache.felix.scr.impl.Activator$ScrExtension.start(Activator.java:262)
at org.apache.felix.scr.impl.AbstractExtender.createExtension(AbstractExtender.java:196)
at org.apache.felix.scr.impl.AbstractExtender.modifiedBundle(AbstractExtender.java:169)
at org.apache.felix.scr.impl.AbstractExtender.addingBundle(AbstractExtender.java:139)
at org.apache.felix.scr.impl.AbstractExtender.addingBundle(AbstractExtender.java:49)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:475)
at org.osgi.util.tracker.BundleTracker$Tracked.customizerAdding(BundleTracker.java:1)
at org.osgi.util.tracker.AbstractTracked.trackAdding(AbstractTracked.java:256)
at org.osgi.util.tracker.AbstractTracked.track(AbstractTracked.java:229)
at org.osgi.util.tracker.BundleTracker$Tracked.bundleChanged(BundleTracker.java:450)
at org.eclipse.osgi.internal.framework.BundleContextImpl.dispatchEvent(BundleContextImpl.java:908)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEventPrivileged(EquinoxEventPublisher.java:230)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:137)
at org.eclipse.osgi.internal.framework.EquinoxEventPublisher.publishBundleEvent(EquinoxEventPublisher.java:129)
at org.eclipse.osgi.internal.framework.EquinoxContainerAdaptor.publishModuleEvent(EquinoxContainerAdaptor.java:191)
at org.eclipse.osgi.container.Module.publishEvent(Module.java:476)
at org.eclipse.osgi.container.Module.start(Module.java:467)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1682)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.incStartLevel(ModuleContainer.java:1661)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.doContainerStartLevel(ModuleContainer.java:1624)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1555)
at org.eclipse.osgi.container.ModuleContainer$ContainerStartLevel.dispatchEvent(ModuleContainer.java:1)
at org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
at org.eclipse.osgi.framework.eventmgr.EventManager$EventThread.run(EventManager.java:340)`
Feature request for options to
Since in the current version .* leads to the behaviour of the latter request, these are all minor issues.
The peak filter "Disable classified peaks" does not alter active peaks in peak/scan list.
Hello, I have been trying to get openchrom running in Eclipse by following your DEV guidelines with no success. Latest issue I have is that it "Unable to locate installable unit net.openchrom.rcp.compilation.community.converter.feature.feature.group 0.0.0".
I'm really looking for the code that opens and converts an Agilent Data.Ms file - can you point me in right direction please.
Tx.
Applying the TPD to a file I see a lots of the following messages in the log:
WARN ModalContext support.PeakSupport.extractPeakByScanRange (PeakSupport.java:111) org.eclipse.chemclipse.model.exceptions.PeakException: There must be at least one intensity value stored with a relative intensity of IPeakIntensityValues.MAX_INTENSITY.
There still seems to be some errors in plotting the molecule structures.
Maybe this is liked to #9
The X and Y axis is not updated correctly after setting a peak manually.
After peak identification via NIST14, entries in the Targets View does not contain the Mol Weight which would be usefull with respect to the parent ion.
Also in some cases the CAS number is 0-00-0.
I guess this leads to no creation of SMILES code and therefore no molecule structure is shown.
Examples are:
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.