Defining MetaData

Issue #2 on hold
Keith Rawson created an issue

I am trying to configure iMonDB to monitor two Thermo instruments but am having a rough time figuring out how to format the meta data objects in imondb-collector. I have tried to build the meta data objects off of what is reported from ThermoRawMetaDump as the documentation suggested, but haven't been able to figure out how to define the key and value. Based on the ThermoRawMetaDump output, what is the best way in figuring out what parts I need to use for the key and value? The initial variables that I want to track are instrument temperature, voltages, with the hope that once I can get a basic collection, that I can add more meta data objects to better describe our instrument performance. Thanks!

Comments (4)

  1. Wout Bittremieux

    Hi Keith,

    I'm not really sure what you're trying to do, but I think you're mixing up a few things. First, I don't really know which documentation you're referring to. ThermoRawMetaDump is not included with the iMonDB but is a ProteoWizard example script, although our small C++ extraction scripts do pretty much the same. However, this all happens in the background and it's not necessary to deal with these details to set up the iMonDB.

    Next, metadata is not required to run the iMonDB, it's some extra information you can link to each run to perform specific queries later on. But for basic instrument monitoring this is not required. To set up the iMonDB Collector, a few things should be configured:

    • You need to specify where to find and how to connect to the MySQL database (database configuration).
    • You need to point to the directory where the raw files are stored (general configuration).
    • You need to define your two instruments (instrument configuration). Each instrument is defined by a name and its model. A regular expression applied to each raw file directory path or file name is used to determine to which instrument the raw files correspond.

    This is the minimum required information that needs to be configured to run the iMonDB. Other information, such as the metadata configuration, is optional.

    After you have successfully configured the iMonDB Collector, running it will extract all instrument parameters from the raw files and store them in the database. You don't need to set the specific parameters you want to monitor, by default all parameters are included.

    After running the Collector, you can use the Viewer to visualize the instrument parameters over time. Simply connect to the database in the Viewer and find the relevant parameter you want to look in the Property dropdown menu. You can also use the Advanced search settings (magnifying glass icon) to easily filter the properties.

    I hope this clarifies how to run the iMonDB. Please let me know if you managed to make it work.

  2. Keith Rawson reporter

    Hi,

    I am able to make a connection to the proper database, am able to see the instrument and raw files in the path. When I go to run the collector without any metadata items defined, I receive a NullPointerException from Java for each file (copied below). I am able to verify the database connection, as well as see the expected instrument name with I use the magnifying glass on the provided RAW file directory.

    08:05:20.900 [SwingWorker-pool-3-thread-7] ERROR inspector.imondb.collector.controller.CollectorTask - Error while executing a thread: java.lang.NullPointerException java.util.concurrent.ExecutionException: java.lang.NullPointerException at java.util.concurrent.FutureTask.report(Unknown Source) ~[?:1.8.0_25] at java.util.concurrent.FutureTask.get(Unknown Source) ~[?:1.8.0_25] at inspector.imondb.collector.controller.CollectorTask.retrieveTask(CollectorTask.java:199) [imondb-collector-1.1.2.jar:1.1.2] at inspector.imondb.collector.controller.CollectorTask.doInBackground(CollectorTask.java:106) [imondb-collector-1.1.2.jar:1.1.2] at inspector.imondb.collector.controller.CollectorTask.doInBackground(CollectorTask.java:55) [imondb-collector-1.1.2.jar:1.1.2] at javax.swing.SwingWorker$1.call(Unknown Source) [?:1.8.0_25] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_25] at javax.swing.SwingWorker.run(Unknown Source) [?:1.8.0_25] at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_25] at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_25] at java.lang.Thread.run(Unknown Source) [?:1.8.0_25] Caused by: java.lang.NullPointerException at inspector.imondb.convert.RawFileMetadata.<init>(RawFileMetadata.java:36) ~[imondb-core-1.0.5.jar:?] at inspector.imondb.convert.thermo.ThermoRawFileExtractor.getMetadata(ThermoRawFileExtractor.java:287) ~[imondb-core-1.0.5.jar:?] at inspector.imondb.convert.thermo.ThermoRawFileExtractor.extractInstrumentData(ThermoRawFileExtractor.java:204) ~[imondb-core-1.0.5.jar:?] at inspector.imondb.collector.controller.FileProcessor.call(FileProcessor.java:110) ~[imondb-collector-1.1.2.jar:1.1.2] at inspector.imondb.collector.controller.FileProcessor.call(FileProcessor.java:50) ~[imondb-collector-1.1.2.jar:1.1.2] at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_25] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) ~[?:1.8.0_25] at java.util.concurrent.FutureTask.run(Unknown Source) ~[?:1.8.0_25] ... 3 more 08:05:20.904 [SwingWorker-pool-3-thread-7] INFO inspector.imondb.collector.controller.CollectorTask - Processing finished successfully

  3. Wout Bittremieux

    OK, I can see the source of the confusion. I used the term metadata in two different locations: either when reading the raw file's date and instrument model during parameter extraction, and when linking user-specified metadata to a run when storing the information in the database. This error pertains to the first situation, so it's completely unrelated to the user-configurable metadata through the Collector.

    That being said, I don't immediately know how to solve your error. The error is caused by a failure to read the raw file's date, something I haven't seen before. Normally the date should be straightforward to read, so I don't know why this fails in your case. Could you possibly supply me with one of the offending raw files, so I can figure out why this goes wrong? You could use Dropbox or a file sharing website, and if you don't want to share the link publicly here you can send me a message here on Bitbucket or contact me at wout dot bittremieux at uantwerpen dot be.

  4. Wout Bittremieux

    I'm putting this issue on hold due to lack of information to pinpoint the problem. Feel free to re-activate it when you can provide me with additional information or if someone else experiences the same problem.

  5. Log in to comment