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})
#=> A Bio::Ipcress::Result object, 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 AAACT*Y*,
which indicates that both AAACT*C* and AAACT*T* 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
http://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 (c) 2012 Ben J Woodcroft. See LICENSE.txt for further details.