class Bio::SiRNA::ShRNA

Bio::SiRNA::ShRNA

Designing shRNA.

Attributes

bottom_strand[RW]
top_strand[RW]

Public Class Methods

new(pair) click to toggle source

Input is a Bio::SiRNA::Pair object (the target sequence).

    # File lib/bio/util/sirna.rb
234 def initialize(pair)
235   @pair = pair
236 end

Public Instance Methods

block_it(method = 'piGENE') click to toggle source

same as design('BLOCK-iT'). method can be one of 'piGENE' (default) and 'BLOCK-iT'.

    # File lib/bio/util/sirna.rb
251 def block_it(method = 'piGENE')
252   top = Bio::Sequence::NA.new('CACC') # top_strand_shrna_overhang
253   bot = Bio::Sequence::NA.new('AAAA') # bottom_strand_shrna_overhang
254   fwd = @pair.sense
255   rev = @pair.sense.complement
256 
257   case method
258   when 'BLOCK-iT'
259     # From BLOCK-iT's manual
260     loop_fwd = Bio::Sequence::NA.new('CGAA')
261     loop_rev = loop_fwd.complement
262   when 'piGENE'
263     # From piGENE document
264     loop_fwd = Bio::Sequence::NA.new('GTGTGCTGTCC')
265     loop_rev = loop_fwd.complement
266   else
267     raise NotImplementedError
268   end
269 
270   if /^G/i =~ fwd
271     @top_strand    = top + fwd + loop_fwd + rev
272     @bottom_strand = bot + fwd + loop_rev + rev
273   else
274     @top_strand    = top + 'G' + fwd + loop_fwd + rev
275     @bottom_strand = bot + fwd + loop_rev + rev + 'C'
276   end
277 end
design(method = 'BLOCK-iT') click to toggle source

only the 'BLOCK-iT' rule is implemented for now.

    # File lib/bio/util/sirna.rb
239 def design(method = 'BLOCK-iT')
240   case method
241   when 'BLOCK-iT'
242     block_it
243   else
244     raise NotImplementedError
245   end
246 end
report() click to toggle source

human readable report

    # File lib/bio/util/sirna.rb
280 def report
281   # raise NomethodError for compatibility
282   raise NoMethodError if !defined?(@top_strand) || !@top_strand
283   report = "### shRNA\n"
284   report << "Top strand shRNA (#{@top_strand.length} nt):\n"
285   report << "  5'-#{@top_strand.upcase}-3'\n"
286   report << "Bottom strand shRNA (#{@bottom_strand.length} nt):\n"
287   report << "      3'-#{@bottom_strand.reverse.upcase}-5'\n"
288 end