bio-plates
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
- BioRuby: bioinformatics software for the Ruby programming language
- Biogem: an effective tool-based approach for scaling up open source software development in bioinformatics
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.