| Class | Bio::SiRNA::ShRNA |
| In: |
lib/bio/util/sirna.rb
|
| Parent: | Object |
Designing shRNA.
| bottom_strand | [RW] | Bio::Sequence::NA |
| top_strand | [RW] | Bio::Sequence::NA |
Input is a Bio::SiRNA::Pair object (the target sequence).
# File lib/bio/util/sirna.rb, line 193
193: def initialize(pair)
194: @pair = pair
195: end
same as design(‘BLOCK-iT’). method can be one of ‘piGENE’ (default) and ‘BLOCK-iT’.
# 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.
# 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
# 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