[BioRuby] help to understand the codes

Tomoaki NISHIYAMA tomoakin at kenroku.kanazawa-u.ac.jp
Wed Jun 17 23:55:12 UTC 2009


Hi,

Perhaps, an implicit assumption is used that the siRNA duplex
has 2 nt overhang at the 3' ends and the "target" is
written for one strand containing both:
So, the sequence should be
from the rule 1 and 2:
   SNNN...NNNNNNNNNNN
NNNNNN...NNNNNNNNW

(W: A or U, S: G or C)

from the compliment rule
this will be
   SNNN...NNNNNNNNWNN
NNSNNN...NNNNNNNNW

and if you write only the top strand (or the original mRNA sequence)
NNSNNN...NNNNNNNNWNN

thus
>       return false unless /^.{2}[GC]/i =~ target  #which rule is  
> for this line ?
is for rule 2
and
>       return false unless /[AU].{2}$/i =~ target   #which rule is  
> for this line
is for rule 1
-- 
Tomoaki NISHIYAMA

Advanced Science Research Center,
Kanazawa University,
13-1 Takara-machi,
Kanazawa, 920-0934, Japan


On 2009/06/17, at 23:32, chen li wrote:

>
> Hi all,
>
> I read source codes in sirna.rb in Bioruby. It implements the codes  
> based on the following 4 rules( I copy the ruels from the paper):
> These rules indicate that siRNAs which
> simultaneously satisfy all four of the following
> sequence conditions are capable of inducing highly
> effective gene silencing in mammalian cells:
>
> (i) A/U at the 5' end of the antisense strand;
> (ii) G/C at the 5' end of the sense strand;
> (iii) at least five A/U residues in the 5' terminal one-third of  
> the antisense
> strand;
> and (iv) the absence of any GC stretch of more than 9 nt in length.
>
>
> And here are the codes:
> In sirna.rb
>  # Ui-Tei's rule.
>     def uitei?(target)
>       return false unless /^.{2}[GC]/i =~ target  #which rule is  
> for this line ?
>       return false unless /[AU].{2}$/i =~ target   #which rule is  
> for this line
>
>       return false if     /[GC]{9}/i   =~ target   # rule 4
>
>       #rule 3
>       one_third  = target.size * 1 / 3
>       start_pos  = @target_size - one_third - 1
>       remain_seq = target.subseq(start_pos, @target_size - 2)
>       au_number  = remain_seq.scan(/[AU]/i).size
>       return false if au_number < 5
>
>       return true
>     end
>
>
> from these codes I don't think I understand how rule 1 and rule 2  
> are implemented. I wonder if someone can explain them a little more.
>
>
> Thanks,
>
> Li
>
>
>
> _______________________________________________
> BioRuby mailing list
> BioRuby at lists.open-bio.org
> http://lists.open-bio.org/mailman/listinfo/bioruby
>




More information about the BioRuby mailing list