Evaluation Options

Cloud

An online instance of LIMS*Nucleus is available for evaluation. You are limited to creating 10 plates per plate set. Data is refreshed nightly.

username: demo
password: demo

Install on AWS EC2

Install your own personal instance on Amazon following directions provided here. This method installs Guix, sets up a guix channel, and pulls the LIMS*Nucleus software. Requires a t2.medium instance on AWS.

Install using a Guix Pack

For users not interested in the Guix package manager, LIMS*Nucleus and all its dependencies have been collected in a Guix Pack. You can use this install script to install the LIMS*Nucleus client and optionally the database. Suitable for use with the t2.micro free tier instance of Debian on AWS or local installation. This will be the best option for most users. Follow the video here. Detailed step by step manual installation instructions with troubleshooting tips here.

Install on Windows 11 wsl2

Windows 11

Retrieve License Key

Wallet ID:
License key:

Once the license key is available, navigate to Utilities/Register menu item in the software and enter customer ID, license key and your email. These will be registered in a local database. This is a one time process.

Click ‘Register’ to update the local database and confirm validity of the license key.

Problems?: info@labsolns.com Note that internet access is required for the licensing mechanism to work. If Blockchain.info is down, please try again at a later time.

Import Assay Data

  1. Select the plate set that will receive the data

  2. From the tools icon under import select “Assay Data”

  1. A file import form will appear. Select the import file and submit. Fill in required data, making sure that the imported layout matches the defined layout of the plate set. Hit identification can be performed during import or deferred to a later time.

Once imported, the data can be viewed using a scatter plot, which is visible when viewing assay runs, i.e. click on the assay run hyperlink.

Troubleshooting

LIMS*Nucleus Errors

Browser cookie management can sometimes go awry. Clear the cookies associated with the LIMS*Nucleus (LN) URL and go back to the login page to reset the session id cookie.

Firefox: web/developer/web console while the LN URL is in the address bar. Select the storage tab. On the left under cookes right click on the LN URL and choose delete all. Login to LN. You should see a new cookie ‘sid’ appear.

Chrome: more tools/ developer tools select the LN URL and right click ‘clear’. Login to LN. You should see a new cookie ‘sid’ appear.

ERROR: In procedure setlocale: In procedure setlocale: Invalid argument

1
$ export LC_ALL="C"

ERROR: In procedure open-file: In procedure open-file: No such file or directory: “/tmp/limsn/tmp/cache/route.cache”

1
$ mkdir -p /tmp/limsn/tmp/cache

AWS Errors

Secure Connection Failed. Error code: SSL_ERROR_RX_RECORD_TOO_LONG

LIMS*Nucleus does not yet use secure network transfer protocol. If your browser tries to redirect you to an ‘https://’ URL, manually remove the s to change back to ‘http://’

Tutorial 2 - canonical workflow with sample replicates

Tutorial 1 covers in detail steps that are glossed over in this tutorial.

Looking at available layouts there are 2 that offer replication - 2S4T and 4S2T:

2S4T: Entire plate coated with the same target, samples in duplicate. Note that sample replicates are in the same row.

4S2T: Each sample tested in duplicate on 2 targets. Note that target replicates are in the same column. (see tutorial 3 )

Following tutorial 1 I will rearray the 10 plates of PS-6 into a new plate set applying the 2S4T layout. 10 96 well plates in duplicate will requires 5 384 well plates:

Submit and confirm on the next screen. Note that selections made in the sample replication dropdown limit the options available under target layout - in this case only the default is available. View the target layout for a discussion on optional target layouts, which are only used for data annotation.

Click submit to create the new plate set PS-10. Select and assaociate data with the plate set. Use the data file plates384x5_2S4T.txt which contains demonstration data for 5 384 well plates. The data has been generated such that replicates are side by side in the same row and are +/-10% of each other. In the graph below replicates for one plate are color coded and appear at the same X value:

Looking at the response trellised by plate and colored by sample type:

Associate the data with the plate set:

Select the file:

Fill in the required information. Note that I am auto-selecting hits (all samples with a response greater than 3 standard deviations fromt the mean of the negative controls) which activates the hit list name and description text boxes. I did not choose to select the Top N hits so the box where I would enter N remains disabled.

Click import and after a few seconds you are taken to the ‘Plates for PS-10’ page where you can scroll down and see the new assay run and hit list:

Click on the AR-7 link to see a plot of the data. Note that the associated hit list HL-8 has 155 hits.

Responses are plotted in decreasing order with controls color coded. Not that if you select normalized response with a hit threshold set to mean(background)+/-3SD, 155 hits will be identified. The hit list could have been created here, but was already auto-generated on import.

Looking at the hit list view you can see that PS-6, 96 well plates contain all 155 hits that can be rearrayed into two 96 well plates.

Once rearrying is complete, creating PS-11, that plate set is annotated with a worklist indicating that it was generated by a rearray activity. The worklist can be used to physically rearray the samples into the new plate set PS-11.

Tutorial 3 prepares a target layout for the Tutorial 4 discussion on target replication.

Windows 11

LIMS*Nucleus is a client/server application requiring a PostgreSQL database server and an Artanis web server. For use in production, installation on data center or cloud servers is most appropriate. However if you are a Windows user, you may wish to evaluate LIMS*Nucleus on your personal laptop. For that purpose installation on Windows Subsystem for Linux 2 directions are provided below. Note that the easiest way to evaluate LIMS*Nucleus is to work with the instance running on Amazon Web Services. A video is available that describes installation of the client on Windows.

Install WSL2

WSL2 on Windows 11 has been tested. Use the windows search tool to find cmd. Open a command prompt in administrative mode:

Install the Debian version of linux.

1
C:\Windows\System32> wsl --install -d Debian

You will need to reboot. Upon reboot you will set up your personal user. Use the name “admin” which is the user name hardcoded in the Postgresql installation scripts. If you wish to use a different name, the scripts will need to be modified. Once Linux is installed, install required Linux utilities:

1
2
$ sudo apt update
$ sudo apt install xz-utils wget

Install LIMS*Nucleus

Launch Linux:

Dowload and run the install script:

1
2
3
4
$ sudo wget https://labsolns.com/labsolns/evaluate/install-limsn-pack.sh
$ chmod 777 ./install-limsn-pack.sh
# export PATH="$HOME/bin${PATH:+:}$PATH"
$ sudo ./install-limsn-pack.sh

When prompted indicate IP: 127.0.0.1
Number of plates per plateset: 100 is reasonable
Do you want to set up a local database? “y”

Launch LIMS*Nucleus

1
$ start-limsn.sh

Troubleshooting

Can’t sudo apt update

1
$sudo nano /etc/resolv.conf

Resolve.conf should look like:

resolve.conf
1
2
3
4
# This file was automatically generated by WSL. To stop automatic generation of this file, add the following entry to />
# [network]
# generateResolvConf = false
nameserver 8.8.8.8

Can’t create directories

Sometimes Linux is started and you do not have permission to create directories. To take ownership of your home directory execute sudo chown -R $USER .

Test and make sure you can mkdir.

Error: “Do you have an /etc/artanis.conf” file?

Most likely the script did not have permission to create directories (see above) so the following must be executed manually:

1
2
3
$sudo mkdir -p ./.config/limsn
$sudo cp ./gnu/store/l67854c56rpv9k8z8kpipfs99h0yjg4a-limsn-0.1.0/share/guile/site/3.0/limsn/conf/artanis.conf ./.config/limsn
$sudo nano ./.config/limsn/artanis.conf ##edit connection parameters as needed

Can’t connect to database

Error: artanis/db.scm:162:6: Throw to key artanis-err' with args(500 #<procedure create-new-DB-conn ()> “Database connect failed:” “could not connect to server: Connection refusedthe server running on host "127.0.0.1" and accepting/IP connections on port 5432?”)’.

If you restart the terminal, you will need to restart the database server:

1
$ sudo pg_ctlcluster 13 main restart

Check that the database is available:

1
$ psql -U ln_admin -h 127.0.0.1 lndb

Configure the database manually:

1
2
3
$ sudo sed -i 's/host[ ]*all[ ]*all[ ]*127.0.0.1\/32[ ]*md5/host    all        all             127.0.0.1\/32        trust/' /etc/postgresql/13/main/pg_hba.conf
$ sudo sed -i 's/\#listen_addresses =/listen_addresses =/' /etc/postgresql/13/main/postgresql.conf
$ sudo pg_ctlcluster 13 main restart

Check environment variables

ERROR: no code for module (dbi dbi)

1
printenv | grep GUI

You should see GUILE related environment variables e.g. GUILE_LOAD_PATH; if not try:

1
$ sudo ./bin/init-limsn-pack.sh

or manually modify .bashrc loaded environment variables:

1
2
3
4
echo export LC_ALL=\"C\" >> $HOME/.bashrc
echo export PATH="$HOME/bin${PATH:+:}$PATH" >> $HOME/.bashrc
echo export GUILE_LOAD_PATH="$HOME/gnu/store/rj0pzbki1m5hpcshs614mhkrgs2b3i9d-artanis-0.5.2/share/guile/site/3.0:$HOME/gnu/store/780bll8lp0xvj7rnazb2qdnrnb329lbw-guile-json-3.5.0/share/guile/site/3.0:$HOME/gnu/store/jmn100gjcpqbfpxrhrna6gzab8hxkc86-guile-redis-2.1.1/share/guile/site/3.0:$HOME/gnu/store/3f0lv3m4vlzqc86750025arbskfrq05p-guile-dbi-2.1.8/share/guile/site/2.2${GUILE_LOAD_PATH:+:}$GUILE_LOAD_PATH" >> $HOME/.bashrc
echo export GUILE_DBD_PATH="$HOME/gnu/store/z5kilafxayw2kdvn3anw1shkqij17dqb-guile-dbd-postgresql-2.1.8/lib" >> $HOME/.bashrc

Terminal resart will be necessary.

Find artanis.conf in the store

1
find ./gnu/store -wholename '*artanis.conf'

Delete Linux

You can delete the Linux instance to recover space, clean up, or start over:

1
$sudo wsl --unregister Debian

Import Accession IDs

Accession IDs are imported by plate number/well number. The files page provides details on the file format, with a 2 plate sample file available. Navigate into the project of interest and select the plate set of interest. From the tool icon select Accessions under import:

A standard file import form will open - find the file and click submit. The number of lines expected will be calculated by querying the sample id count for the plate set. For example a plate set of two 96 well plates with 4 control wells per plate (no sample ids for controls) will require 2x(96-4)=184 accession ids. The control wells should not be included in the import file. For example a portion of the accession import file looks like:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22

plate well accs.id
1 1 AMRVK5473H
1 2 KMNCX9294W
1 3 EHRXZ2102Z
1 4 COZHR7852Q
.
.
.
1 89 BKLUY4714F
1 90 VHDTN3829S
1 91 XUTEZ7832G
1 92 EGTKM4119P
2 1 GWGJT9769W
2 2 TKSUP0061X
2 3 HLVOR2656F
2 4 TIYAO0501Y
2 5 YBBDN6102H
.
.
.

Once imported, accesion ids will appear in the well table:

Example accession ID import files:

File name Description
accs96x2controls4.txt Two 96 well plates with 4 controls in column 12
accs384x2controls8.txt Two 384 well plates with 8 controls in column 24
accs1536x2controls16x2.txt Two 1536 well plates with 16 controls, in duplicate, in columns 47, 48

Algorithms

Processing steps

  1. Import data, setting all negative values to 0.

    On a plate by plate basis:

  2. Calculate the average of all wells labeled “blank” to obtain plate specific backgound signal

  3. Subract backgound from all signals to obtain background subtracted values (bkgrnd_sub below) which are used in all further calculations

  4. Set all background subtracted values that are less than zero to zero

(4.5 For layouts utilizing duplicates (2S4T, 4S2T), average the duplicates)

  1. Calculate norm, norm_pos, p_enhance as described below

Background subtraction, normalization

Upon data import, raw values are stored and processed as described above, then the calculations below are performed to yield additional columns of stored data.

column Description
raw imported raw data
bkgrnd_sub mean of all wells annotated “blank” subtracted from each raw value;
norm all values normalized to the maximum of the background subtracted values annotated as “unknown”;
norm_pos all values normalized to the mean of the background subtracted values annotated as “positive”;
p_enhance Percent enhancement over the positive control;
100*(

Hit identification

Algorithm

Label Hit threshold
mean(neg) + 3SD
mean(neg) + 2SD
>0% enhanced
Top N Highest N responses from unknowns



### References

Sittampalam GS, Coussens NP, Brimacombe K, et al., editors. Assay Guidance Manual Internet. Bethesda (MD): Eli Lilly & Company and the National Center for Advancing Translational Sciences; 2004-.

Brian P. Kelley, 1 Mitchell R. Lunn, 1 David E. Root, Stephen P. Flaherty, Allison M. Martino, and Brent R. Stockwell; A Flexible Data Analysis Tool for Chemical Genetic Screens, Chemistry & Biology 11:1495–1503, November, 2004