Class Bio::SiRNA::ShRNA
In: lib/bio/util/sirna.rb
Parent: Object

Bio::SiRNA::ShRNA

Designing shRNA.

Methods

block_it   design   new   report  

Attributes

bottom_strand  [RW]  Bio::Sequence::NA
top_strand  [RW]  Bio::Sequence::NA

Public Class methods

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

[Source]

     # File lib/bio/util/sirna.rb, line 193
193:       def initialize(pair)
194:         @pair = pair
195:       end

Public Instance methods

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

[Source]

     # File lib/bio/util/sirna.rb, line 210
210:       def block_it(method = 'piGENE')
211:         top = Bio::Sequence::NA.new('CACC') # top_strand_shrna_overhang
212:         bot = Bio::Sequence::NA.new('AAAA') # bottom_strand_shrna_overhang
213:         fwd = @pair.sense
214:         rev = @pair.sense.complement
215: 
216:         case method
217:         when 'BLOCK-iT'
218:           # From BLOCK-iT's manual
219:           loop_fwd = Bio::Sequence::NA.new('CGAA')
220:           loop_rev = loop_fwd.complement
221:         when 'piGENE'
222:           # From piGENE document
223:           loop_fwd = Bio::Sequence::NA.new('GTGTGCTGTCC')
224:           loop_rev = loop_fwd.complement
225:         else
226:           raise NotImplementedError
227:         end
228: 
229:         if /^G/i =~ fwd
230:           @top_strand    = top + fwd + loop_fwd + rev
231:           @bottom_strand = bot + fwd + loop_rev + rev
232:         else
233:           @top_strand    = top + 'G' + fwd + loop_fwd + rev
234:           @bottom_strand = bot + fwd + loop_rev + rev + 'C'
235:         end
236:       end

only the ‘BLOCK-iT’ rule is implemented for now.

[Source]

     # File lib/bio/util/sirna.rb, line 198
198:       def design(method = 'BLOCK-iT')
199:         case method
200:         when 'BLOCK-iT'
201:           block_it
202:         else
203:           raise NotImplementedError
204:         end
205:       end

human readable report

[Source]

     # File lib/bio/util/sirna.rb, line 239
239:       def report
240:         report = "### shRNA\n"
241:         report << "Top strand shRNA (#{@top_strand.length} nt):\n"
242:         report << "  5'-#{@top_strand.upcase}-3'\n"
243:         report << "Bottom strand shRNA (#{@bottom_strand.length} nt):\n"
244:         report << "      3'-#{@bottom_strand.reverse.upcase}-5'\n"
245:       end

[Validate]