bio-ipcress¶ ↑
bio-ipcress
is a programmatic interface to the ipcress
in-silico PCR software, which is bundled with exonerate.
You can run a PCR:
require 'bio-ipcress' #hits the first and last bits of the Methanocella_conradii_16s.fa primer_set = Bio::Ipcress::PrimerSet.new( 'GGTCACTGCTA','GGCTACCTTGTTACGACTTAAC' ) # Run ipcress on a template sequence, specified in as a FASTA file results = Bio::Ipcress.run( primer_set, 'Methanocella_conradii_16s.fa', #this file is in the test/data/Ipcress directory {:min_distance => 2, :max_distance => 10000}) #=> An array of Bio::Ipcress::Result objects, parsed from # #Ipcress result #-------------- # Experiment: AE12_pmid21856836_16S # Primers: A B # Target: gi|335929284|gb|JN048683.1|:filter(unmasked) Methanocella conradii HZ254 16S ribosomal RNA gene, partial sequence # Matches: 19/20 14/15 # Product: 502 bp (range 2-10000) #Result type: forward # #...AAACTTAAAGGAATTGGCGG......................... # forward # ||||| ||| |||||| |||--> #5'-AAACTYAAAKGAATTGRCGG-3' 3'-CRTGTGTGGCGGGCA-5' # primers # <--| ||||||||||||| #..............................CGTGTGTGGCGGGCA... # revcomp #-- #ipcress: gi|335929284|gb|JN048683.1|:filter(unmasked) AE12_pmid21856836_16S 502 A 826 1 B 1313 1 forward #-- completed ipcress analysis" # This Bio::Ipcress::Result object now holds info about the result: results.length #=> 1 res = results[0] res.experiment_name #=> 'AE12_pmid21856836_16S' res.primers #=> 'A B' res.target #=> 'gi|335929284|gb|JN048683.1|:filter(unmasked) Methanocella conradii HZ254 16S ribosomal RNA gene, partial sequence' res.matches #=> '19/20 14/15' res.product #=> '502 bp (range 2-10000)' res.result_type #=> 'forward' res.forward_matching_sequence #=> 'AAACTTAAAGGAATTGGCGG' res.forward_primer_sequence #=> 'AAACTYAAAKGAATTGRCGG' res.reverse_primer_sequence #=> 'CRTGTGTGGCGGGCA' res.reverse_matching_sequence #=> 'CGTGTGTGGCGGGCA' res.length #=> 502 res.start #=> 826 res.forward_mismatches #=> 1 res.reverse_mismatches #=> 1
There appears to be a slight bug in iPCRess, in the way it handles primers with 'wobble' bases like the last base of AAACTY, which indicates that both AAACTC and AAACTT are added as primers. IPCress always suggests that there is at least a single mismatch, when this is not always the case. To workaround this, the Result#recalculate_mismatches_from_alignments
method re-computes the number of forward and reverse mismatches.
#...AAACTTAAAGGAATTGGCGG......................... # forward # ||||| ||| |||||| |||--> #5'-AAACTYAAAKGAATTGRCGG-3' 3'-CRTGTGTGGCGGGCA-5' # primers # <--| ||||||||||||| #..............................CGTGTGTGGCGGGCA... # revcomp res = Bio::Ipcress::Result.new res.forward_matching_sequence = 'AAACTTAAAGGAATTGGCGG' res.forward_primer_sequence = 'AAACTYAAAKGAATTGRCGG' res.reverse_matching_sequence = 'CGTGTGTGGCGGGCA' res.reverse_primer_sequence = 'CRTGTGTGGCGGGCA' res.recalculate_mismatches_from_alignments #=> [0,0]
Installation¶ ↑
gem install bio-ipcress
You'll also need to install exonerate
Project home page¶ ↑
Information on the source tree, documentation, examples, issues and how to contribute, see
github.com/wwood/bioruby-ipcress
The BioRuby community is on IRC server: irc.freenode.org, channel: bioruby.
Cite¶ ↑
If you use this software, please cite exonerate
Biogems.info¶ ↑
This Biogem is published at #bio-ipcress
Copyright¶ ↑
Copyright © 2012 Ben J Woodcroft. See LICENSE.txt for further details.