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