Project

bio-plates

0.0
No commit activity in last 3 years
No release in over 3 years
Methods for handling multiwell plate annotations, includes ranges and quadrants
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

~> 0.6
~> 2.0
~> 3.12
~> 3.3
~> 0.10

Runtime

~> 1.4
>= 0
 Project Readme

bio-plates

Build Status

Full description goes here

Note: this software is under active development!

Installation

gem install bio-plates

Command line usage

Produce table of plate annotations

# Show example annotation file layout
# e.g.
#Plate	Area	Condition	Value
#1	A1-B12	siRNA	PLK1
bioplates example_annotate

# Convert ranges to a CSV file with individual well annotations
bioplates annotate --output annotation.csv layout.tsv

# =>
#Row,Column,Plate,siRNA,Well
#A,1,1,PLK1,A01
#A,2,1,PLK1,A02
#...

Rearrangement of 96-well plates into 384-well, in "quadrants"

bioplates example
bioplates quadrants [--output=output.csv --newname='My Plate'] PLATE1.csv PLATE2.csv ...  # convert 4x96-well plate annotations to a 384-well plate

Example input [input.csv]:

Plate,Well,siRNA,Drug,Concentration
Plate1,A1,PLK1,olaparib,0
Plate1,A2,siCON,olaparib,1
Plate1,A3,Allstar,olaparib,5
Plate1,A4,Mock,olaparib,10
Plate1,A5,BRCA1,olaparib,20
Plate1,A6,TP53,olaparib,50
Plate2,A1,PLK1,olaparib,0
Plate2,A2,siCON,olaparib,1
Plate2,A3,Allstar,olaparib,5
Plate2,A4,Mock,olaparib,10
Plate2,A5,ATR,olaparib,20
Plate2,A6,ATM,olaparib,50
Plate3,A1,PLK1,olaparib,0
Plate3,A2,siCON,olaparib,1
Plate3,A3,Allstar,olaparib,5
Plate3,A4,Mock,olaparib,10
Plate3,A5,PARP1,olaparib,20
Plate3,A6,ARID1A,olaparib,50
Plate4,A1,PLK1,olaparib,0
Plate4,A2,siCON,olaparib,1
Plate4,A3,Allstar,olaparib,5
Plate4,A4,Mock,olaparib,10
Plate4,A5,BRCA2,olaparib,20
Plate4,A6,PALB2,olaparib,50
bioplates quadrants --output=384.csv --newname="Screen Plate" input.csv
Plate,Row,Column,sirna,drug,concentration,original_well,original_plate
Screen Plate,A,01,PLK1,olaparib,0,A1,Plate1
Screen Plate,A,02,PLK1,olaparib,0,A1,Plate2
Screen Plate,A,03,siCON,olaparib,1,A2,Plate1
Screen Plate,A,04,siCON,olaparib,1,A2,Plate2
Screen Plate,A,05,Allstar,olaparib,5,A3,Plate1
Screen Plate,A,06,Allstar,olaparib,5,A3,Plate2
Screen Plate,A,07,Mock,olaparib,10,A4,Plate1
Screen Plate,A,08,Mock,olaparib,10,A4,Plate2
Screen Plate,A,09,BRCA1,olaparib,20,A5,Plate1
Screen Plate,A,10,ATR,olaparib,20,A5,Plate2
Screen Plate,A,11,TP53,olaparib,50,A6,Plate1
Screen Plate,A,12,ATM,olaparib,50,A6,Plate2
Screen Plate,B,01,PLK1,olaparib,0,A1,Plate3
Screen Plate,B,02,PLK1,olaparib,0,A1,Plate4
Screen Plate,B,03,siCON,olaparib,1,A2,Plate3
Screen Plate,B,04,siCON,olaparib,1,A2,Plate4
Screen Plate,B,05,Allstar,olaparib,5,A3,Plate3
Screen Plate,B,06,Allstar,olaparib,5,A3,Plate4
Screen Plate,B,07,Mock,olaparib,10,A4,Plate3
Screen Plate,B,08,Mock,olaparib,10,A4,Plate4
Screen Plate,B,09,PARP1,olaparib,20,A5,Plate3
Screen Plate,B,10,BRCA2,olaparib,20,A5,Plate4
Screen Plate,B,11,ARID1A,olaparib,50,A6,Plate3
Screen Plate,B,12,PALB2,olaparib,50,A6,Plate4

Usage in a script:

require 'bio-plates'
BioPlates.read("plate.csv")
#=> => {"Plate1"=>#<BioPlates::Plate:0x007fbc3b0cb260 @name="Plate1", @wells=[#<BioPlates::Plate::Well:0x007fbc3b0cb1e8 @row="A", @column="01", @annotation={:plate=>"Plate1", :drug=>"si1", :conc=>"5"}>, #<BioPlates::Plate::Well:0x007fbc3b0cabf8 @row="A", @column="02", @annotation={:plate=>"Plate1", :drug=>"si2", :conc=>"5"}>, #<BioPlates::Plate::Well:0x007fbc3b0ca540 @row="A", @column="03", @annotation={:plate=>"Plate1", :drug=>"si3", :conc=>"5"}>, #<BioPlates::Plate::Well:0x007fbc3b0c9c30 @row="A", @column="04", @annotation={:plate=>"Plate1", :drug=>"si4", :conc=>"5"}>...
## See specs for examples

Example CSV format. Must have a column headed Plate containing plate name, and either a well column Well (e.g. A01 or B4) or two further columns with Row and Column (A,3) Any number of further columns can be specified for annotations Multiple plates can be specified in the same file, these are read into a Hash keyed by plate name

  Plate,Well,Row,Column,siRNA,Conc
  Plate1,,A,1,si1,5
  Plate1,,A,2,si2,5
  Plate1,,A,3,si3,5
  Plate1,,A,4,si4,5
  Plate1,,A,5,si5,5
  Plate1,,A,6,si6,5
  Plate1,,A,7,si7,5
  Plate1,,A,8,si8,5
  Plate1,,A,9,si9,5
  Plate1,,A,10,si10,5
  Plate1,,A,11,si11,5
  Plate1,,A,12,si12,5
  Plate1,,B,1,si1,5
  Plate1,,B,1,si1,5
  Plate1,,B,1,si1,5
  Plate1,,B,1,si1,5
  ...
  Plate2,A01,,,si1,15
  Plate2,A02,,,si1,15
  Plate2,A03,,,si1,15

The API doc is online. For more code examples see the test files in the source tree.

Project home page

Information on the source tree, documentation, examples, issues and how to contribute, see

http://github.com/stveep/bioruby-plates

The BioRuby community is on IRC server: irc.freenode.org, channel: #bioruby.

Cite

If you use this software, please cite one of

Biogems.info

This Biogem is published at (http://biogems.info/index.html#bio-plates)

Copyright

Copyright (c) 2015 stveep. See LICENSE.txt for further details.