Version 9.2 represents a important step forward in the ongoing evolution of the open source LabKey Server. Enhancements in this release are designed to:

  • Support leading medical research institutions using the system as a data integration platform to reduce the time it takes for laboratory discoveries to become treatments for patients
  • Provide quick-to-deploy software infrastructure for communities pursing collaborative clinical research efforts
  • Deliver a secure data repository for managing and sharing laboratory data with colleagues, such as for proteomics, microarray, flow cytometry or other assay-based data.
New capabilities introduced in this release are summarized below. For an exhaustive list of all improvements made in 9.2, see: Items Completed in 9.2. Refer to the 9.2 Upgrade Tips to quickly identify behavioral changes associated with upgrading from v9.1 to v9.2.

Download LabKey Server v 9.2.

User administration and security

Finer-grained permissions settings for administrators

  • Tighter security. Admins can now receive permissions tightly tailored to the subset of admin functions that they will perform. This allows site admins to strengthen security by reducing the number of people who possess broad admin rights. For example, "Specimen Requesters" can receive sufficient permissions to request specimens without being granted folder administration privileges.
  • New roles. LabKey Server v9.2 includes four entirely new roles: "Site Admin," "Assay Designer," "Specimen Coordinator" and "Specimen Requester." This spreadsheet shows a full list of the new admin roles and the permissions they hold. It also shows roles that may be added in future releases of LabKey Server.
Improved permissions management UI
  • Brief list of roles instead of long list of groups. Previously, the permissions management interface displayed a list of groups and allowed each group to be assigned a role. This list became hard to manage when the list of groups grew long. Now security roles are listed instead of groups, so the list is brief. Groups can be assigned to these listed roles or moved between roles.
  • Rapid access to users, groups and permission settings. Clicking on a group or user brings up a floating window that shows the assigned roles of that group or user across all folders. You can also view the members of multiple groups by switching to the groups tab.
Assignment of individual users to roles
  • Now individual users, not just groups, can be assigned to security roles. This allows admins to avoid creating groups with single members in order to customize permissions.
Site Users list is a grid view
  • This allows customization and export of the view.
Custom permission reporting
  • Administrators can create custom lists to store metadata about groups by joining a list with groups data. Any number of fields can be added to information about a each user or group. These lists can be joined to:
    • Built in information about the user (name, email etc)
    • Built in information about the group (group, group members)
  • The results can also be combined with built-in information about roles assigned to each user & group in each container. From this information a variety of reports can be created, including group membership for every user and permissions for every group in every container.
  • These reports can be generated on the client and exported as Excel Spreadsheets
Improved UI for Deleting, Deactivating and Re-activating Users
  • Deactivate/Re-Activate buttons are now on the user details page as well as the user list. When clicked on the user list, a confirmation page is shown listing all the selected users (users that are already activate/inactive are filtered out if action is deactivate/re-activate).
  • Clicking Delete on the user list now takes you to a confirmation page much like the deactivate/re-activate users command. If at least one of the selected users is active, it will also include a note and button that encourages the admin to deactivate the user(s) rather than permanently delete them.


Study export, import and reload

  • Studies can be reloaded onto the same server or onto a different LabKey Server. This makes it easy to transfer a study from a staging environment to a live LabKey platform.
  • You can populate a brand new study with the exported contents of an existing study. For similar groups of studies, this helps you leverage your study setup efforts.
  • Studies can be set up to reloaded data from a data depot nightly. This allows regular transfer of updates from a remote, master database to a local LabKey Server. It keeps the local server up-to-date with the master database automatically.
Customizable "Missing Value" indicators
  • Field-Level Missing Value (MV) Indicators allow individual data fields to be flagged. Previously, only two MV values were allowed (N and Q). Administrators can now customize which MV values are available. A site administrator can customize the MV values at the site level and project administrators can customize the MV values at the folder level. If no custom MV values are set for a folder, they will be inherited from their parent folder. If no custom values are set in any parent folders, then the MV values will be read from the server configuration.
  • MV value customization consists of creating or deleting MV values, plus editing their descriptions.
  • A new API allows programmatic configuration of MV values for a folder. This allows study import/export to include MV values in its data and metadata.
"Missing Value" user interface improvements
  • MV values are now displayed with a pop-up and a MV indicator on an item’s detail page.
  • When inserting or updating an item with a MV-enabled field, possible MV values are now offered in a drop-down, along with the ability to set a raw value for the field. Currently a user is only able to specify one or the other on the update page.


Import of specimen data allowed before completion of quality control (QC)

  • Specimen import is now more lenient in the conflicts it allows in imported specimen data. Previously, import of the entire specimen archive was disallowed if conflicts were detected between transaction records for any individual vial. In 9.2, all fields with conflicts between vials are marked "NULL" and the upload is allowed to complete.
  • Use a saved, custom view that filters for vials with the "Quality Control Flag" marked "True" in order to identify and manage vials that imported with conflicts.
Visual flagging of all questionable vials and primary specimens
  • Vial events with conflicting information are flagged. Conflicts are differentiated by the presence of an "unknown" value for the conflicting columns, plus color highlighting. For example, you would see a flag when an imported specimen's globalUniqueID is associated with more than one primary type, as could occur if a clinic and repository entered different vial information pre- and post-shipment.
  • Vial events that indicate a single vial is simultaneously at multiple locations are flagged. This can occur in normal operations when an information feed from a single location is delayed, but in other cases may indicate an erroneous or reused globalUniqueID on a vial.
  • Vials or primary specimens that meet user-specified protocol-specific criteria are flagged. Examples of QC problems that could be detected with this method include:
    • A saliva specimen present in a protocol that only collects blood (indicating a possibly incorrect protocol or primary type).
    • Primary specimen aliquoted into an unexpectedly large number of vials, based on protocol expectations for specimen volume (indicating a possibly incorrect participantID, visit, or type for one or more subset of vials).
Built-in report for mismatched specimens.
  • The new "specimencheck" module identifies mismatched specimens and displays them in a grid view. It identifies specimens whose participantID, sequenceNum and/or visit dates fail to match, then produces a report that can be used to perform quality control on these specimens. For developers, the "specimencheck" module also provides an example of a simple file-based module.
Manual addition/removal of QC flags
  • This allows specimen managers to indicate that a particular quality control problem has been investigated and resolved without modification of the underlying specimen data.
  • A specimen manager can also manually flag vials as questionable even if they do not meet any of the previously defined criteria.
  • Records of manual flagging/unflagging are preserved over specimen imports, in the same manner as specimen comments.
Blank columns eliminated from Excel specimen reports
  • When exported to Excel, individual worksheets of specimen reports may include blank columns. This is due to the fact that columns are included for all visits that have specimens of any kind, rather than for just those visits with specimens matching the current worksheet’s filter. Exported Excel files now display a minimal set of visit columns per report worksheet.
Additional vial count columns available in vial views
  • Additional columns can be optionally presented in vial view and exported via Excel. These include the number of sibling vials currently available, locked in requests, currently at a repository and expected to become available, plus the total number of sibling vials.
  • These columns are available via the ‘customize view’ user interface, so different named/saved views can be created. The built-in ability to save views per user enables specimen coordinators to see in-depth detail on available counts, while optionally presenting other users with a more minimal set of information.
  • Faster loading of specimen queries. Please review the 9.2 Upgrade Tips to determine whether any of your queries will need to be updated to work with the refactored specimen tables.
Specimen report improvements
  • New filter options are available for specimen reports. You can now filter on the presence or absence of a completed request.


Validation and Transform Scripts

  • Both transformation and validation scripts (written in Perl, R or Java) can now be run at the time of data upload. A validation script can reject data before acceptance into the database if the data do not meet initial quality control criteria. A data transformation script can to inspect an uploaded data file and modify the data or populate empty columns that were not provided in the uploaded data. For example, you can populate a column calculated from other columns or flag out-of-range values.
  • Validation support has been extended to NAb, Luminex, Microarray, ELISpot and file-based assay types. Validation is not supported for MS2 and Flow assays.
  • A few notes on usage:
    • Columns populated by transform scripts must already exist in the assay definition.
    • Executed scripts show up in the experimental graph, providing a record that transformations and/or quality control scripts were run.
    • Transform scripts are run before field-level quality control. Sequence: Transform, field-level quality control, programmatic quality control
    • A sample script and details on how to write a script are currently available in the specification.
Specimen IDs provide lookups to study specimens
  • For an assay, a specimenID that doesn't appear in a study is displayed with a red highlight to show the mismatch in specimenID and participantID. GlobalUniqueIDs are matched within a study, not between studies.
NAb Improvements
  • The columns included in the "Run Summary" section of the NAb "Details" page can be customized. If there is a custom run view named "CustomDetailsView", the column set and order from this view will apply to NAb run details view.
  • Significant performance enhancements. For example, switching from a run to a print view is much faster.
  • Users with read permissions on a dataset that has been copied into the study from a NAb assay now see an [assay] link that leads to the "Details" view of a NAb assay.
New tutorial for Microarrays


Proteomics metadata collection

  • The way that users enter proteomics run-level metadata has been improved and bulk-import capabilities have been added. The same approach used for specifying expected properties for other LabKey assays is now used for proteomics.
Proteomics-Study integration
  • It is now possible to copy proteomics run-level data to a study dataset, allowing the proteomics data to be integrated with other study datasets. Note that the study dataset links back to the run that contains the metadata, not the search results.
Protein administration page enhanced
  • A new utility on the protein administration page allows you to test parsing a FASTA header line


Filter improvements

  • A filter notification bar now appears above grid views and notes which filters that have been applied to the view.
  • The links above an assay remember your last filter. This helps you avoid reapplying the filter. For example, if you have applied a filter to the view, the filter is remembered when you switch between batches, runs and results. The filter notification bar above the view shows the filters that remain with the view as you switch between batches, runs and results.

File management

WebDAV UI enhancements provide a user-friendly experience

  • Users can browse the repository in a familiar fashion similar to the Windows Explorer, upload files, rename files, and delete files. All these actions are subject to permission checking and auditing. Drag and drop from desktop and multi-file upload with progress indicator are supported. Additional information about the files is displayed, such as the date of file creation or records of file import into experiments.


Flow Dashboard UI enhancements

  • These changes provide a cleaner set of entry points for the most common usages of Flow. The advanced features of the current Flow Dashboard remain easily accessible. Changes include:
    • More efficient access to flow runs
    • Ability to upload FCS files and import FlowJo workspaces from a single page.
New Tutorial

Custom SQL Queries

New SQL functions supported

  • COUNT(*)
  • SELECT Table.*
  • UNION in subqueries
  • Parentheses in UNION and FROM clauses

Client API

New Tutorial and Demo for LabKey JavaScript APIs

New JavaScript APIs
  • LABKEY.Query.exportSql. Accepts a SQL statement and export format and returns an exported Excel or TSV file to the client. The result set and the export file are generated on the server. This allows export of result sets over over 15,000 rows, which is too much for JavaScript to parse into objects on the client.
  • LABKEY.QueryWebPart. Supports filters, sort, and aggregates (e.g., totals and averages). Makes it easier to place a Query Web Part on a page.
  • LABKEY.Form. Utility class for tracking the dirty state of an HTML class
  • LABKEY.Security Expanded. LABKEY.Security provides a range of methods for manipulating and querying security settings. A few of the new APIs:
    • LABKEY.Security.getGroupsForCurrentUser. Reports the set of groups in the current project that includes the current user as a member.
    • LABKEY.Security.ensureLogin. A client-side function that makes sure that the user is logged in. For example, you might be calling an action that returns different results based on the user's permissions, like what folders are available or setting a container filter.
    • Enhanced LABKEY.Security.getUsers. Now includes users' email addresses as the "email" property in the response.
New Java APIs
  • The Java library now includes programmatic access to NAb data.
Generate a JavaScript, R or SAS script from a filtered grid view
  • A new menu option under the "Export" button above a grid view will generate a valid script that can recreate the grid view. For example, you can copy-and-paste generated JavaScript into a wiki page source or an HTML file to recreate the grid view. Filters that have been applied to the grid view that are shown in the filter bar above the view are included in the script.


Customization of the “Issues” label

  • The issues module provides a convenient tracking service, but some of the things one might want to track with this service are best described by titles other than “issues.” For example, one might use the issues module to track “requests,” “action items,” or “tickets.”
  • Administrator can now modify the label displayed in the issue module’s views. The admin can specify a singular and plural form of the new label on a per-container basis. In most places in the UI where either term "Issue" or "Issues" is used, these configured values are used instead. The only exceptions to this are the name of the issues module when displayed in the admin console and folder customization, and the name of the controller in URLs.
Wiki enhancements
  • Attachments
    • A new option to hide the list of page attachments is available. Files attached to wiki pages are currently displayed below the page content, even if those attachments. This is undesirable in cases where the attachments are simply images used within the page content itself.
    • When wiki attachments are displayed, a file attachment divider is shown by default. CSS allows the text associated with the divider to be hidden.
  • HTML Editor
    • The wiki HTML editor has been updated to a newer version.
    • The button for manipulating images is now enabled in the Visual Editor.
    • Spellcheck is enabled on Firefox (but not IE).
  • Print. You can now print a subtree of a wiki page tree.
Support for tabs in text areas
  • Forms where you enter code and want to format it nicely. This includes the Wiki and query SQL editors.
  • Forms where you enter TSV. This includes sample set, list, dataset, and custom protein annotation uploads.
  • Support for simple tab entry, as well as multi-line indent and outdent with shift-tab.
Message expiration
  • Expiration of messages is now "Off" by default for newly created message boards. Existing message boards remain as they are.



  • Support for PostgreSQL 8.4 Beta 1.

  Attached Files  


expand all collapse all