Premium Feature — Available in the Professional Edition of Sample Manager and all Premium Editions of Biologics LIMS. Learn more or contact LabKey.

This topic covers the details about how the Sample Manager and Biologics LIMS products handle actions across Projects.

Cross-Project Actions

Summary of Functionality

When Projects are in use, the following summarizes the high-level behavior of actions for Samples and Sources (or other Data Classes), collectively referred to as "entities". A given user may have different permissions assigned in different projects, as well as in the top level (application or "Home Project").

Reading of entities: You can read the current project's entities as well as the ones in the Home Project and "subprojects" you have permissions to read.

Connecting entities with lineage relationships: Entities can have ancestor entities in the current project and the Home Project, provided you have the necessary permission. Entities cannot have ancestors in a subproject.

Creating entities: Entities are created by default in the project the user is viewing at the time the action is initiated. Users with appropriate permissions can choose to create entities in other projects they have access to.

Updating entities: An entity can be updated from the project in which it was created. Users with appropriate permissions can also update entities across projects. The project to which the entity is assigned is shown 'read only' when editing entities from multiple projects in a grid. Moving entities between projects should be done separately.

Deleting entities: An entity can be deleted from the project in which it was created. Users with appropriate permissions can also delete entities defined in different projects.

Lookups: You can look "UP" but not down the project hierarchy in lookup fields. In the Home Project you will see only values defined in the Home Project. In a child project you will see values in both the current and Home Project.

Detailed Cross-Project Actions

When Projects are in use, these notes apply to how some cross-project actions are handled:

  • Samples:
    • Individual sample creation in a grid allows parent types from the current project and projects above it. You cannot select parents from a "child" project of the current one.
    • Grid edit and sample deletion: Works for entities in the current project. With appropriate permissions users can also edit and delete entities defined in different projects.
    • Sample derivation, pooling, and aliquoting: Works for entities in the current project. Users with appropriate permissions can also select samples from the home project and up to one subproject for these actions. The derivatives or aliquots will be created in project where they are derived/aliquoted, or if in the home project with a subproject selected, they will be created in the subproject.
    • File import only allows sample parent type and parent selection from the current project.
    • Editing parent details for an individual sample only works when adding parents from the current project or the home project.
  • Sources (as well as Bioregistry and Media entities in Biologics LIMS):
    • Creating entities, either in a grid or via file import, allows parents and related entities to be chosen from the current project or projects above it in the hierarchy. You cannot select parents from a "child" project of the current one.
    • Editing in a grid or in bulk is allowed for entities in the current project. Users with permission can also edit entities from any project they have access to. You do not need to be in the project the entity belongs to, but you must have edit permission there.
    • Deleting is allowed for entities in the current project and other projects the user has access to.
    • Deriving samples from a data class (source, registry source, or some media) allows parent data class objects from only the current project or a project above it.
  • Assay:
    • Imported assay data can reference samples in the current project or any 'higher' (parent) project, but cannot reference samples in sibling or 'lower' (child) project.
    • Imported assay data can also reference samples defined in the Shared project.
    • When assay runs and/or results are editable, users with appropriate permissions can select from multiple projects for editing.
  • Storage:
    • Freezers (or other storage) can only be defined in the Home Project.
    • Samples from multiple projects can be selected at once for adding to storage.
    • Learn more about shared storage below
  • Workflow:
    • Creation of workflow jobs using samples from different projects is possible both from any project.
    • The job that is created will belong to the project in which it was created, regardless of the samples included.
    • Additional samples from all visible projects can be added to existing jobs.
  • Picklists:
    • Creation of picklists using samples from different projects is possible from any project.
    • The picklist that is created will belong to the project in which it is created, regardless of the samples included.
    • The picklist will be visible in only the project in which it was created.
    • Additional samples from all visible projects can be added to existing picklists in the current project.
  • Notebooks:
    • Notebooks can reference entities from all projects visible in the current context.
    • Notebooks created from a parent project are also visible from any child project, and vice versa.
    • Notebooks created in any project can be submitted for review, or accessed for review, from any project.

Restricted Visibility of Inaccessible Data

When a user has access to a subset of projects, there can be situations where this user should be restricted from seeing data from other projects, including identifiers such as Sample IDs that might contain restricted details. In detail pages, listing pages, and grids, entities a user does not have access to will show "unavailable" in the display instead of a name or rowid.

As an example, if a notebook contains references to any data a user cannot access, they will not be able to access that notebook. It will not be included on the "All Notebooks" listing and if they happen to directly access it, such as through a saved URL, they will see only a banner message reading "You cannot view notebook [notebook title] because it contains references to data you don't have permission to view. The references may be in active or archived entries."

As another example, when a storage unit contains samples you cannot view, you'll see the space occupied by a lock icon and a hover message will explain "This location is occupied by a restricted sample."

In timelines, the names of entities the user does not have access to, such as the parent of an entity they can access, will be redacted from the timeline events.

Add or Edit Entities Across Projects

When the user has the appropriate permissions, samples and sources can be added to a project the user is not currently in by using the Project dropdown to select the target project.

With appropriate permissions, a user can edit Samples and Sources that belong to different projects in bulk or in a single grid. When Assay results or runs are editable, the same cross-project editing behavior applies.

  • When editing in bulk, the project is not shown (and not editable). Lookup and file fields are not editable when samples from multiple projects are selected.
  • When editing in a grid, the project to which the sample belongs will be shown read-only. If any selected Samples that belong to projects the user is not authorized to edit, they will not be listed for editing.

Note that users cannot edit the parents or sources for Samples from multiple projects.

Move Samples, Sources, and Assay Runs Between Projects

If a user has access to multiple projects and accidentally adds something to the wrong project, or later wants to change project affiliation, they can use Edit > Move to Project to move Samples, Sources, or Assay Runs between projects. Entities currently belonging to multiple projects can be selected at once to be moved to a new project.

Sample, Source, and Assay Run moves require that the user must have update permissions in the current container and insert permission in the target container. If selected entities cannot be moved, the user will see a warning, but authorized moves will proceed.

Note that there are some situations in which data cannot be moved:

  • Samples with a "Locked" status
  • Samples with status values that are not defined in the Home Project. This is an uncommon scenario, and is prevented in the current application.
  • Assay Runs with QC states that are not defined in the Home Project.
From the grid, select the desired (eligible) rows, then select Edit > Move to Project.

In the popup, select the project to Move to from the dropdown. If the application has been configured to require a reason, you must enter a Reason for Moving, otherwise it is optional. Click Move.

The move is audited, tracked in the Timeline for the entity, and parentage and derivation lineage connections are maintained.

Move from Details Page

You can also move a single Sample, Source, or Assay Run from the details page via Manage > Move to Project.

Move Notebooks Between Projects

Notebooks can be moved from one project to another provided the user starts in the project where the notebook is defined and has insert permission in the target project. One exception is that once a notebook has been approved, it can no longer be moved.

Click the for the current Project setting in the header section of the notebook.

In the popup, select the project to Move to from the dropdown, enter a Reason for Moving if required or desired, then click Move.

Storage Shared Across Projects

Set Up Shared Storage

To share storage, create it in the home project, defining the properties and hierarchies as usual. It will then be visible in all subprojects.

Users with the "Storage Editor" role in any project will then be able to use the freezer to store and manage samples. Access to sample details is always dependent upon permissions in the container where the sample is defined.

In shared storage where a user has permission to see data from all projects using it, the user will see data from all containers as if all the samples were local. When viewing details of a sample, you'll see a note in the detail panel if it belongs to another project, but can still perform actions upon it.

Storage Occupied by Inaccessible Samples

In shared storage where a user does not have permission to read data from other projects, storage views will show a spaces as occupied, but instead of revealing any data about the sample, will show a icon. This means the space is occupied by a "restricted sample".

The same icon is shown when users move samples, ensuring both that spaces are never occupied by multiple samples and that data is only shared with authorized users.

Related Topics

Was this content helpful?

Log in or register an account to provide feedback


previousnext
 
expand allcollapse all