Skip to main content

Provides a framework for easily constructing work list files for creation of combinations of substances for high throughput screening

Project description

Echo Combination Builder

A Python module for creating large-scale combination work list files.

Summary

The intended purpose of this module is to provide a framework for easily constructing work list files for import to Echo acoustic liquid handlers (Beckman Coulter) that create combinations of substances for high throughput screening assays. The original application was for small molecule screening, but additional applications should be possible without modification. There are a series of steps involved in creating the work list files and this module provides the methods needed to perform these steps.

Acknowledgement

If this software is helpful to you please acknowledge the source in your publications. Please use the following acknowledgement: "The authors would like to thank Duane Currier and Taosheng Chen of St Jude Children's Research Hospital for the use of the Combination Builder module (https://github.com/StJude-HTB/Echo-Combination-Builder)."

Installation

Dependency: Python 3.8+

Install from pip:
python -m pip install combination-builder

Use And Examples

From the Python prompt the following commands will import the example files and produce example outputs. The examples files referenced below can be downloaded by cloning this repository or downloading them from the Example_Files directory.
Import Combinations Module
import combination-builder as Combine

1. Set Values and Initialize a Combinations Object

Set variables to indicate locations of input and output files: Setting these variables here make setting all the variables easier since they are in one place, but the values can be substituted below in the actual calls to the methods if that is preferable. The map_filepath is the path to the platemap file in either basic or 'Mosaic' format
map_filepath = "Example_Files\\ExamplePlatemap.txt"

The concentration_file is the path to the file containing assay concentrations for each substance
concentration_file = "Example_Files\\Example_Final_Concs.csv"

The save_filepath is the path where the Echo work list CSV file will be saved
save_filepath = "Example_Files\\ExampleOutput3.csv"

The cmt_filepath is the path where the Screener cmt mapping file will be saved
cmt_filepath = "Example_Files\\ExampleOutput4.cmt"

Set variables to control the locations of special wells:
Setting backfill_wells here allows for easier reference to the well range to use for backfill wells. Similar to the control_wells, backfill_wells is an array of well coordinates that can be extended or appended for discontinuous ranges. backfill_wells = Combine.generate_well_range("A21", "P24")

Setting control_wells here makes it easier to reference the well range later. This range is an array of well coordinates that can be extended or appended for discontinuous ranges. This is an exmple of creating two discontinuous control well ranges. Please note that control substances are not currently handled by this module. Use an alternate means to manually set control well transfers. control_wells = Combine.generate_well_range("A1","P2")
control_wells.extend(Combine.generate_well_range("A13","P14"))

Set varaibles that specify assay conditions:
Setting static_transfer_volume will force all transfers to be the same volume
static_transfer_volume = 100

Setting assay_volume is required and enables calculation of the assay concentration
assay_volume = 30

Setting combination_max is required and sets the maximum number of substances in each combination
combination_max = 3

Setting substance_id_regex is required and enables identification of the substance identifier in the plate map file
substance_id_regex = r'SJ[0-9-]+'

Initialize the object - This creates the bucket to store all the data in
exp = Combine.Combinations()

2. Load the plate map

Import the source plate map - were the source substances are on the source plate
exp.load_platemap(map_filepath, substance_id_regex)

3. Setup the backfill wells - Comment/Uncomment as needed

There are two ways to set the backfill source wells: manually create
Option 1: Manually supply a list of wells this is fine for a small number of wells
wells = ["A21", "A22", "A23", "A24", "B21", "B22", "B23", "B24"]

Option 2: Generate well list from start and stop wells this option is good for a large number of wells list comprehension is required to get well alphas
wells = [x[0] for x in backfill_wells]

Set backfill wells is specific to individual plates
Repeat for all plates with backfill wells
exp.platemap.plates["E3P00000776"].set_backfill_wells(wells)

4. Set up Combinations - Comment/Uncomment as needed

Option 1: Supply a manually curated list of combinations list compounds in separate columns, any number of columns is supported, header and any compound not in the platemap are skipped
combinations_filepath = "Combination Template.csv"
exp.load_platemap(combinations_filepath)

Option 2: Calculate all permutations in the script specify how many compounds to include in each combination
exp.generate_combinations(combination_max)

5. Set transfer volume or assay conditions

Option 1: Set a static volume for all substances volume is in nanoliters - All combinations will be the 1:1:1 volume ratios
exp.set_transfer_volume(static_transfer_volume)

Option 2: Set assay volume and assay concentration assay volume is in microliters assay concentration(s) must be supplied
exp.set_assay_volume(assay_volume)
Set a constant concentration for all substances
exp.set_assay_concentration(conc=50, unit="mM")
Or set each concentration idependently with a csv file
exp.set_assay_concentration(file=concentration_file)

6. Configure assay plate layout

exp.reserve_control_wells([w[0] for w in control_wells])

7. Create the transfer list

exp.create_transfers()

8. Sort transfer list for optimized transfer speed

exp.sort_transfers()

9. Save transfer list - Echo formatted CSV file

exp.save_transfers(save_filepath)

10. Save *.cmt file - Screener Mapping File

OPTIONAL - Set replicate number to create replicate plates with the same plate mapping and concentrations
exp.save_cmt(cmt_filepath, 3)

IN A NEW SESSION
This must be done after using the Echo CSV to transfer samples

11. Update CMT with barcodes after performing transfers

This is a new python session - initialize the module again
import Combinations as Combine

cmt_filepath = "Example_Files\\ExampleOutput4.cmt"
barcode_filepath = "Example_Files\\Barcode_List.csv"

Update barcodes
Combine.update_CMT_barcodes(cmt_filepath, barcode_filepath)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

combination-builder-0.1.0.tar.gz (16.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

combination_builder-0.1.0-py3-none-any.whl (14.0 kB view details)

Uploaded Python 3

File details

Details for the file combination-builder-0.1.0.tar.gz.

File metadata

  • Download URL: combination-builder-0.1.0.tar.gz
  • Upload date:
  • Size: 16.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.3

File hashes

Hashes for combination-builder-0.1.0.tar.gz
Algorithm Hash digest
SHA256 7599d4e4e585e4387edabb9b77c5cbe82ec1b532263ba845fcf9260128d5d247
MD5 7aba9a78c85f797db92f6c533d52cb57
BLAKE2b-256 ff0377c9786df0b27d70a95ef6d851ff70d4004998ca4c7b1da20909e651a6b9

See more details on using hashes here.

File details

Details for the file combination_builder-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: combination_builder-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.8.0 pkginfo/1.8.2 readme-renderer/32.0 requests/2.27.1 requests-toolbelt/0.9.1 urllib3/1.26.8 tqdm/4.62.3 importlib-metadata/4.11.1 keyring/23.5.0 rfc3986/2.0.0 colorama/0.4.3 CPython/3.8.3

File hashes

Hashes for combination_builder-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 76bbbd3e6efde1d61ee0077e5d8813005465da7ac3a21a74463e1f3c4eb24ea2
MD5 fa2dacecac8647b3a7e510eee5a1b3f3
BLAKE2b-256 de591ace9bb59fb35d2f0471f25228525abc27ab9204bbd2778a38aa2cb4339a

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page