PostgreSQL

View a schematic of the LIMS*Nucleus architecture here. If you have experience with PostgreSQL, you may wish to install the LIMS*Nucleus database independent of the client utilizing resources you already control e.g. an AWS instance of Postgres or Postgres running in your internal datacenter. This archive provides the necessary scripts for database installation/configuration. LIMS*Nucleus is agnostic with respect to the location of the database - all that is needed is a valid connection string. Once the database has been configured, the artanis configuration file must be modified.

Scripts included are:

Name Description
initdba.sql create users
initdbb.sql create database
initdbc.sql create schema and grant privileges to users
create-db-sql create tables, load functions, load required data e.g. layouts, plate types, assay types, etc.
example-data.sql load example data projects 1-10. Note this is not optional as LIMS*Nucleus will not boot without Project 1 in the database
drop-func-tables.sql used to refresh the database i.e. delete all user created data and reload required and example data
install-pg.sh install script that calls above scripts; see below for options

Once the database is up and running, install the client.

Postgres Install script

The postgres install script can be used to install a data directory under the current user, \(HOME/lndata, or to modify the database installed by <code>sudo apt-get install postgres</code> in the default data directory at /etc/postgresql/\)PGMAJOR/main

User directory

install-pg.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/sh

mkdir lndata

echo "export PGDATA=\"$HOME/lndata\"" >> $HOME/.bashrc
export PGDATA="$HOME/lndata"
export LC_ALL="C"

sudo mkdir -p /var/run/postgresql
sudo chown -R admin:admin /var/run/postgresql
initdb -D $HOME/lndata

sed -i 's/\#listen_addresses =/listen_addresses =/' $HOME/lndata/postgresql.conf

pg_ctl -D $HOME/lndata -l logfile start

psql -U postgres -h 127.0.0.1 postgres -a -f initdba.sql
psql -U ln_admin -h 127.0.0.1 postgres -a -f initdbb.sql
psql -U ln_admin -h 127.0.0.1 -d lndb -a -f initdbc.sql
psql -U ln_admin -h 127.0.0.1 -d lndb -a -f create-db.sql
psql -U ln_admin -h 127.0.0.1 -d lndb -a -f example-data.sql

Take ownership with sudo chown -R admin:admin /var/run/postgresql where admin:admin is the user id

Default postgres directory

install-pg.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
PGMAJOR=$(eval "ls /etc/postgresql")
PGHBACONF="/etc/postgresql/$PGMAJOR/main/pg_hba.conf"
sudo sed -i 's/host[ ]*all[ ]*all[ ]*127.0.0.1\/32[ ]*md5/host all all 127.0.0.1\/32 trust/' $PGHBACONF

PGCONF="/etc/postgresql/$PGMAJOR/main/postgresql.conf"
sudo sed -i 's/\#listen_addresses =/listen_addresses =/' $PGCONF

eval "sudo pg_ctlcluster $PGMAJOR main restart"

psql -U postgres -h 127.0.0.1 postgres -a -f initdba.sql
psql -U ln_admin -h 127.0.0.1 postgres -a -f initdbb.sql
psql -U ln_admin -h 127.0.0.1 -d lndb -a -f initdbc.sql
psql -U ln_admin -h 127.0.0.1 -d lndb -a -f create-db.sql
psql -U ln_admin -h 127.0.0.1 -d lndb -a -f example-data.sql

Create a Project

Only administrators can create/edit/delete projects. Project is the only entity that can be deleted. It will be deleted using a cascading delete, removing all plate sets, plates, samples, assay runs, and data that are part of the project. Access the “Add Project” menu item under the Admin menu - visible only to administrators:

A dialog will appear with 2 fields, name and description. Pressing OK will add to and refresh the project list in the main browser.

Edit Project

Select the project to be edited, then from the menu bar select Admin/project/edit. The edit project dialog box will be pre-populated with the selected project name and description. Make changes and save.

Delete Project

Select the project to be deleted and from the menu bar select Admin/project/delete. The delet project dialog box will be presented for confirmation,

Quadrants

When reformatting 96 well plates into 384 with fixed tip 96 channel liquid handling robot, the layouts of the destination plate is predetermined and matches the source layout, only replicated four times. Each source plate is deposited into a “quadrant” of the destination plate, such that a quadrant is defined as the wells across the destination plate that accomodate the samples from one source plate.

In the image below, quadrants are indicated for wells A01, A02, B01, and B02. Additional wells that belong to quadrant 1 are indicated. Note that quadrant 1 wells extend across the 384 well plate down to well O23.

The following images explicitly define the indicated quadrant with a filled in square:

Q1

Q2

Q3

Q4

A simplifying assumption made by LIMS*Nucleus is that during a reformatting operation, source plates are added sequentialy in a Z pattern such that plate 1 is deposited into quadrant 1, plate 2 into quadrant 2, etc.:

The process of transferring four 384 well plates into a 1536 well plate is analogous to what is described above.

Rearray

Rearraying is the process of transferring hits from one or more plates into a new plate set. Hits are transferred in sample id order, into plates by column. In the example below, hits are the black wells across 3 plates, being transferred into a single plate:

To initiate a rearray operation start by navigating into a hit list by clicking on the hit list URL. Scroll down to see the list of plate sets that contain the hits of interest. Here I am looking at HL-1:

Note there are 10 hits total. Two plate sets are suggested, but the 384 well plate set is a transient assay plate that contains the hits in duplicate. Use the plate type as a guicde as to which plates might contain the samples. The master plate set PS-1 is selected. Under the tools icon select ‘Rearray’:

The rearray form will appear, with an auto-generated description which you can edit. Fill in the required information and click ‘Submit’.

Confirm the information and select the controls layout. You are then directed to the plate set page where you can see the new plate set PS-20 of hits:

Field Description
Name freeform text, a descriptive name
Description auto-populated but editable
Format 96, 384 well plates are possible destination formats
Type Rearray suggested but user selected
Sample Layout Choose a layout; layout “description” appears in this dropdown

In the plate set view, the newly created PS-20 in PRJ-1 is visible with its informative description. There is also a worklist associated with the plate set because it was created using a rearray operation.

Generate a view of the worklist:

Now to physically transfer the samples from PS-1 to the new plates of PS-20, export the worklist to Excel and import into a liquid handling robot to run the transfer:

Reformat Overview

Reformat is an operation performed on plate sets. Reformat will collapse four 96 well plates into a single 384 well, providing 1 replicate per sample. It is also possible to generate duplicates or quadruplicates of each sample. The plate layout of a reformatted destination plate is predetermined by the layout of the source plate, with some examples shown below. Source plates are loaded into destination plates in plate set order, following the Z pattern through the quadrants.

96 well source plate 384 well destination plate
Singlecates
Duplicates
Quadruplicates

The same patterns apply when reformatting 384 well plates into 1536

Reformat a Plate Set

Read the reformat overview

  1. Navigate into the project containing the plate set to be reformatted
  2. Select the plate set to be reformated
  3. From the tools icon select “Reformat”
  1. The form that appears is divided into 2 sections: “Source Plate Set” provides details of the source, in this case PS-3. “Destination Plate Set” requires configuration by the user. The predicted number of plates and the new plate set layout depend on the replication selections made. Review replication for background information. Fill in the required information and click ‘Submit’.

Confirm and select target layout if applicable. Note that the destination layout is selected for you, LYT-4. The destination layout is predetermined by the source layout and the level of sample and target replication (see below):

The new plate set, PS-8, is available in the plate set list:

Drill down to see that there are five 384 well plates. The original plate set contained 10 96 well plates in LYT-1 that were reformatted in duplicate using LYT-4. Use the global menu to select plate layouts and drill down into LYT-1 to identify the potential destination layouts for LYT-1. LYT-4 is one option for duplicate samples, with the target being the same across the plate (4T - same target in all 4 quadrants).

This requires ten 384 well plates with the duplicate samples side-by-side using the replication pattern 2S4T:

To confirm the samples are in this format, drill down to wells/samples and sort the samples by clicking on the “Sample” column header. Confirm that the two replicates of each sample are in neighboring wells e.g. A01, A02, and C01, C02 etc.

Registration Key

Registration ID:
Registration Key:

Log in to LIMS*Nucleus as an administrator and enter the above values under Utilities/Register

Replication

LIMS*Nucleus handles five combinations of replication for samples and targets. In the table below, the pattern columns show the distribution of samples and target in the four quadrants of a 384 or 1536 well plate, where each color represents a unique sample (or target).

Label Sample pattern Sample replication Target Pattern Target replication N targets N rep (Assay)
1S4T unique quadruplicates 1 1
2S2T duplicates duplicates 2 1
2S4T duplicates quadruplicates 1 2
4S1T quadruplicates unique 4 1
4S2T quadruplicates duplicates 2 2

As an example consider an assay of eight 96 well plates that will be reformatted into 384 well plates for assay:

1S4T: Eight 96 plates will be reformatted into two 384 well plates (Four 96 per 384) with a unique plate in each quadrant. The 384 plates is coated with the same target in all four quadrants. There is only one target (N Targets) and each sample gets assayed 1 time (N rep (Assay))

2S2T: Eight 96 well plates will be reformatted into four 384 well plates (two 96 per 384) with one sample plate replicated in quads 1,2 and a second replicated in quads 3,4. The 384 well plates are coated with 2 antigens, antigen A in all odd columns and antigen B in all even columns. There are two targets (antigens A and B - N targets) and each sample is assayed once on each target, (N rep (Assay)). Because there are twice as many antigens being assayed as in the example above, twice as many plates are needed.

4S2T: Eight 96 well plates will be reformatted into eight 384 well plates (one 96 per 384) with one sample plate replicated in all four quadrants. The 384 well plates are coated with 2 antigens, antigen A in all odd columns and antigen B in all even columns. There are two targets (antigens A and B - N targets) and each sample is assayed twice on each target, (N rep (Assay)).

Some combinations are avoided

For example these are not an option.

Label Sample pattern Sample replication Target Pattern Target replication N targets N rep (Assay)
1S2T unique duplicates 2 1
1S1T unique unique 4 1

1S2T: Half the source plates are tested on one antigen, the other half on a different antigen. This is better broken into 2 assays, one assay per antigen, or 2 X [ 1S4T ]

1S1T: Convert to 4 X [ 1S4T ], one assay per antigen.

Simplifying Assumptions

Samples are always replicated horizontally ( quads 1,2 and 3,4) Targets are always replicated vertically ( quads 1,3 and 2,4)

Replot

In the plot view you are given the option to replot data using different normalizations and thresholds. In any view hits are calculated based on the selected parameters. These hits can be viewed by selecting the tool icon ‘View Hits’ option. In the hits view a hit list can be registered. The ‘View All Data’ option provides a table of all the underlying annotated data for export. External software can then be used to analyze the data and generate hit lists: