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

new(pair)

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

block_it(method = 'piGENE')

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

design(method = 'BLOCK-iT')

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

report()

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]