Menu

LabSystemBasics

This explains a couple of basic concepts of the lab system from a developer's point of view. For user information, see the help page of the application.

The workflow of the lab system evolves around "Samples" (think of these as orders for measurements). There are two basic roles: "Users" and "workers". Users file orders, these get "processed" either automatically or manually. "Processed" means that the result files from the spectrometer are attached to the sample. Optionally, the user can then perform a peak assignment and submit his result for the nmrshiftdb2 database.

In the mysql database, the information is kept in the following tables (also see the ER-diagram):

  • LABGROUP: Defines Labgroups, i. e. groups of users which can submit orders and workers which can process them. Typically one per server, but could be several ones. All users are kept in the standard TURBINE_USER table.
  • MACHINE: Contains NMR spectrometers for which orders can be submitted. The columns MEASURE_SELF, MEASURE_OPERATOR and MEASURE_CHANGER tell which processing methods are possible.
  • EXPERIMENT_CATEGORY: Each category forms a column of experiments in the submit form. Serves only to determine formatting.
  • EXPERIMENT_REPORT_CATEGORY: Categories used for counting experiments in reports. Used only for the reports.
  • EXPERIMENT: Types of experiments possible. MAX_NUMBER column determines if a checkbox is shown in UI (1) or a dropdown box for number 0 to MAX_NUMBER (>1). EXPERIMENT_MACHINE tells which experiments are possible for which machine.
  • SAMPLE: Holds the orders actually submitted. An order has a USERS_ID, which identifies the order, various attributes and a flag FINISHED, which is set to false. If the order has been processed, it changes to true. EXPERIMENT_SAMPLE tells which experiments have been requested for the sample.
  • RAW_FILE: Holds the URL of a zip file of raw data files for this sample. Note the zipped files themselves are not saved in the database, but on disk. This is the only element which is not in the database.

The lifecycle of an order is like this: The user submits it. Then raw data files must be associated. If process is set to changer, this is done by the AssignRobotDaemon, which looks for a directory named $rawfiledir/$machinename/$usersid. If this directory exists and contains at least the number of subdirectories as the sum of COUNT of all experiments of this sample, the files get zipped, made a RAW_FILE entry of this sample and FINISHED is set to true. In case of the manual processing the worker (worker processing) or the user (self processing) can open the order and manually assign files (for users, this is restricted to files in the directory for the machine). The order must then be declared as FINISHED manually. For finished orders, the user can download the assigned raw data files. The last (optional) step for the user is to do a peak assignment. This is done via the normal submit page. Probable structure, machine frequency and solvent are preset from the order data.

Labgroup workers can also produce a variety of reports. See an example below. The system used is Jasper Reports, which allows very flexible adoption of reports to individual needs.

Users which are members of a group are defined by having set the LABGROUP_ID flag in TURBINE_USER to an ID from LABGRUP_TABLE. One user is designated as a labgroup leader via the LEADER column in LABGROUP, which is a foreign key reference to TURBINE_USER. This user can perform labgroup admin tasks. See [LabSystemAdmin] for details of the administration.


Related

Wiki: LabSystem
Wiki: LabSystemAdmin

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.