serological measurements from multiplexed ELISA assays

Overview

unittests codecov

pysero

pysero enables serological measurements with multiplexed and standard ELISA assays.

The project automates estimation of antibody titers from data collected with ELISA assays performed with antigen-arrays and single antigens.

The immediate goal is to enable specific, sensitive, and quantitative serological surveys for COVID-19.

Installation

On a typical Windows, Mac, or Linux computer:

  • Create a conda environment: conda create --name pysero python=3.7
  • Activate conda environment: conda activate pysero
  • Pip install dependencies: pip install -r requirements.txt
  • Add the package to PYTHONPATH. Inside the package directory (...\serology-COVID19), do: export PYTHONPATH=$PYTHONPATH:$(pwd)

For installation notes for Jetson Nano, see these notes.

Usage

usage: pysero.py [-h] (-e | -a) -i INPUT -o OUTPUT
                 [-wf {well_segmentation,well_crop,array_interp,array_fit}]
                 [-d] [-r] [-m METADATA]

optional arguments:
  -h, --help            show this help message and exit
  -e, --extract_od      Segment spots and compute ODs
  -a, --analyze_od      Generate OD analysis plots
  -i INPUT, --input INPUT
                        Input directory path
  -o OUTPUT, --output OUTPUT
                        Output directory path, where a timestamped subdir will
                        be generated. In case of rerun, give path to
                        timestamped run directory
  -wf {well_segmentation,well_crop,array_interp,array_fit}, --workflow {well_segmentation,well_crop,array_interp,array_fit}
                        Workflow to automatically identify and extract
                        intensities from experiment. 'Well' experiments are
                        for standard ELISA. 'Array' experiments are for ELISA
                        assays using antigen arrays printed with Scienion
                        Array Printer Default: array_fit
  -d, --debug           Write debug plots of well and spots. Default: False
  -r, --rerun           Rerun wells listed in 'rerun_wells sheets of metadata
                        file. Default: False
  -m METADATA, --metadata METADATA
                        specify the file name for the experiment metadata.
                        Assumed to be in the same directory as images.
                        Default: 'pysero_output_data_metadata.xlsx'

Extract OD from antigen array images

python pysero.py -e -i <input> -o <output> -m <METADATA> will take metadata for antigen array and images as input, and output optical densities for each antigen. The optical densities are stored in an excel file at the following path: <output>/pysero_<input>_<year><month><day>_<hour><min>/median_ODs.xlsx

If rerunning some of the wells, the input metadata file needs to contain a sheet named 'rerun_wells' with a column named 'well_names' listing wells that will be rerun.

This workflow describes the steps in the extraction of optical density.

Generate OD analysis plots

python pysero.py -a -i <input> -o <output> -m <METADATA> will read pysero or scienion spot fitting outputs and generates analysis plots for each single antigen. 3 types of plots are supported for now (ROC, categorical, standard curves). The example xlsx config file can be found in \example folder in the repo.

An '-l' flag can be added to load the saved report from previous run to speed up loading.

Train a classifier using information from multiple antigens

One could train a machine learning classifier using ODs from multiple antigens to potentially improve the classification accuracy for sero-positive or sero-negative. The following script demonstrates how to do this with xgboost tree classifiers. python -m interpretation.train_classifier

Equipment list

The project aims to implement serological analysis for several antigen multiplexing approaches.

It currently supports:

  • classical ELISA.
  • antigen arrays printed with Scienion.

It can be extended to support:

  • antigen arrays printed with Echo.
  • antigen multiplexing with Luminex beads.

The antigen-arrays can be imaged with:

  • any transmission microscope with motorized XY stage.
  • turn-key plate imagers, e.g., SciReader CL2.
  • Squid - a variant of Octopi platform from Prakash Lab.

The project will also have tools for intersecting data from different assays for estimation of concentrations, determining level of cross-reactivity, ...

Validation

Current code is validated for analysis of anigen arrays imaged with Scienion Reader and is being refined for antigen arrays imaged with motorized XY microscope and Squid.

Contributions

We welcome bug reports, feature requests, and contributions to the code. Please see this page for most fruitful ways to contribute.

Owner
Chan Zuckerberg Biohub
Chan Zuckerberg Biohub
Cloud Native sample microservices showcasing Full Stack Observability using AppDynamics and ThousandEyes

Cloud Native Sample Bookinfo App Observability Bookinfo is a sample application composed of four Microservices written in different languages.

Cisco DevNet 13 Jul 21, 2022
mrcal is a generic toolkit to solve calibration and SFM-like problems originating at NASA/JPL

mrcal is a generic toolkit to solve calibration and SFM-like problems originating at NASA/JPL. Functionality related to these problems is exposed as a set of C and Python libraries and some commandli

Dima Kogan 102 Dec 23, 2022
Hacktoberfest2021 🥳- Contribute Any Pattern In Any Language😎 Every PR will be accepted Pls contribute

✨ Hacktober Fest 2021 ✨ 🙂 All Contributors are requested to star this repo and follow me for a successful merge of pull request. 🙂 👉 Add any patter

Md. Almas Ali 103 Jan 07, 2023
J MBF - Assalamualaikum Mamang...

★ VISITOR ★ ★ INFORMATION ★ Script Ini DiBuat Oleh YayanXD Script Ini Akan DiPerjual Belikan Tanggal 9 Januari 2022 Jika Mau Beli Script Silahkan Hub

Risky [ Zero Tow ] 5 Apr 08, 2022
A python trivium implemention

A python trivium implemention

tnt2402 1 Nov 12, 2021
Demo repository for Saltconf21 talk - Testing strategies for Salt states

Saltconf21 testing strategies Demonstration repository for my Saltconf21 talk "Strategies for testing Salt states" Talk recording Slides and demos Get

Barney Sowood 3 Mar 31, 2022
Secret santa is a fun and easy way to get together with your friends and/or family with a gift for them.

Vaccine Validator Tool to validate domestic New Zealand vaccine passes Create a new virtual environment: python3 -m venv ./venv Activate virtual envi

2 Dec 06, 2021
Solcast Integration for Home Assistant

Solcast Solar Home Assistant(https://www.home-assistant.io/) Component This custom component integrates the Solcast API into Home Assistant. Modified

Greg 45 Dec 20, 2022
Script to quickly get the metrics from Github repos to analyze.

commit-prefix-analysis Script to quickly get the metrics from Github repos to analyze. Setup Install the Github CLI. You'll know its working when runn

David Carpenter 1 Dec 17, 2022
GWAS summary statistics files QC tool

SSrehab dependencies: python 3.8+ a GNU/Linux with bash v4 or 5. python packages in requirements.txt bcftools (only for prepare_dbSNPs) gz-sort (only

21 Nov 02, 2022
Tesla App Update Differences Extractor

Tesla App Update Differences Extractor Python program that finds the differences between two versions of the Tesla App. When Tesla updates the app a l

Adrian 5 Apr 11, 2022
For Tok-k passages that have passed through the Bi-Encoder Retrival, ReRank is performed using CrossEncoder.

Cross-Encoder-with-Bi-Encoder For Tok-k passages that have passed through the Bi-Encoder Retrival, ReRank is performed using CrossEncoder. Data Data u

7 Feb 09, 2022
Aesthetic NFT Generator

A E S T H E T I C Dependencies Pillow numpy OpenCV You can use pip to install any missing dependencies. Basic Usage Vaporwave artwork can be generated

Mentor Elezi 4 Mar 13, 2022
adbsync - An ADB syncing helper

adbsync - An ADB syncing helper What's this? Everytime I wanted to make a backup of my phone, or restore those files onto it, I had to use everytime t

Giovanni Gualtieri 3 Aug 05, 2022
The ldapconsole script allows you to perform custom LDAP requests to a Windows domain

ldapconsole The ldapconsole script allows you to perform custom LDAP requests to a Windows domain. Features Authenticate with password Authenticate wi

Podalirius 38 Dec 09, 2022
A package with multiple bias correction methods for climatic variables, including the QM, DQM, QDM, UQM, and SDM methods

A package with multiple bias correction methods for climatic variables, including the QM, DQM, QDM, UQM, and SDM methods

Sebastián A. Aedo Quililongo 9 Nov 18, 2022
Leveraging pythonic forces to defeat different coding challenges 🐍

Pyforces Leveraging pythonic forces to defeat different coding challenges! Table of Contents Pyforces Tests Pyforces Pyforces is a study repo with a c

Igor Grillo Peternella 8 Dec 14, 2022
Hashcrack: Hash Bruteforse tool using python

HashCrack Hash Bruteforse tool Usage hashcrack.py -n 6 -c lower -l 5 -a md5 -t 3

Lev 1 May 04, 2022
A Powerful Tool For Making Combo List(All possible modes)

ComboMaker A Powerful Tool For Making Combo List Introduction Check out all possible Combo list build modes with this tool =) How to Install Open the

MasterBurnt 7 Jan 07, 2023
Box CRUD API With Python

Box CRUD API: Consider a store which has an inventory of boxes which are all cuboid(which have length breadth and height). Each Cuboid has been added

Akhil Bhalerao 3 Feb 17, 2022