SiRNA(3) Perl object for designing small inhibitory RNAs.


use Bio::Tools::SiRNA;
my $sirna_designer = Bio::Tools::SiRNA->new( -target => $bio_seq,
-rules => 'saigo'
my @pairs = $sirna_designer->design;
foreach $pair (@pairs) {
my $sense_oligo_sequence = $pair->sense->seq;
my $antisense_oligo_sequence = $pair->antisense->seq;
# print out results
print join ("\t", $pair->start, $pair->end, $pair->rank,
$sense_oligo_sequence, $antisense_oligo_sequence), "\n";


Package for designing siRNA reagents.

Input is a Bio::SeqI-compliant object (the target).

Output is a list of Bio::SeqFeature::SiRNA::Pair objects, which are added to the feature table of the target sequence. Each Bio::SeqFeature::SiRNA::Pair contains two subfeatures (Bio::SeqFeature::Oligo objects) which correspond to the individual oligos. These objects provide accessors for the information on the individual reagent pairs.

This verion of Bio::Tools::SiRNA represents a major change in architecture. Specific 'rulesets' for siRNA selection as developed by various groups are implemented as Bio::Tools::SiRNA::Ruleset objects, which inherit from Bio::Tools::SiRNA. This will make it easier to add new rule sets or modify existing approaches. Currently the Tuschl and Ui-Tei (2004) rules are implemented. For consistency, the Tuschl rules are implemented by default.

In addition, this module provides three 'extra' rules which can be added above and beyond any ruleset.

SiRNAs that overlap known SNPs (identified as SeqFeatures with primary tag = variation) can be avoided.
Other regions (with primary tag = 'Excluded') can also be skipped. I use this with Bio::Tools::Run::Mdust to avoid low-complexity regions (must be run separately), but other programs could also be used.
SiRNAs may also be selected in the 3 prime UTR of a gene by setting $sirna_designer->include_3pr() to true.




Mailing Lists

User feedback is an integral part of the evolution of this and other Bioperl modules. Send your comments and suggestions preferably to the Bioperl mailing list. Your participation is much appreciated.

  [email protected]                  - General discussion  - About the mailing lists


Please direct usage questions or support issues to the mailing list:

[email protected]

rather than to the module maintainer directly. Many experienced and reponsive experts will be able look at the problem and quickly address it. Please include a thorough description of the problem with code and data examples if at all possible.

Reporting Bugs

Report bugs to the Bioperl bug tracking system to help us keep track of the bugs and their resolution. Bug reports can be submitted via the web:


Donald Jackson ([email protected])


The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _


 Title          : new
 Usage          : my $sirna_designer = Bio::Tools::SiRNA->new();
 Function       : Constructor for designer object
 Returns        : Bio::Tools::SiRNA object
 Args           : target - the target sequence for the SiRNAs as a Bio::Seq::RichSeq
                  start_pad - distance from the CDS start to skip (default 75)
                  end_pad - distance from the CDS end to skip (default 50)
                  include_3pr - set to true to include SiRNAs in the 3prime UTR (default false)
                  rules - rules for selecting siRNAs, currently supporting saigo and tuschl
                  min_gc - minimum GC fraction (NOT percent) (default 0.4)
                  max_gc - maximum GC fraction (NOT percent) (default 0.6)
                  cutoff - worst 'rank' accepted(default 3)
                  avoid_snps - boolean - reject oligos that overlap a variation
                     SeqFeature in the target (default true)
                  gstring - maximum allowed consecutive Gs.
                     Too many can cause problems in synthesis (default 4)
  Note          : All arguments can also be changed/accessed using autoloaded 
                 methods such as:
    my $start_pad = $sirna_designer->start_pad().


  Title         : target
  Usage         : my $target_seq = $sirna_designer->target(); # get the current target
                  $sirna_designer->target($new_target_seq); # set a new target 
  Function      : Set/get the target as a Bio::SeqI-compliant object
  Returns       : a Bio::SeqI-compliant object
  Args          : a Bio::SeqI-compliant object (optional)


    Title       : rules
    Usage       : $sirna->rules('ruleset')
    Purpose     : set/get ruleset to use for selecting SiRNA oligo pairs.
    Returns     : not sure yet
    Args        : a ruleset name (currently supported: Tuschl, Saigo)
                  or a Bio::Tools::SiRNA::RulesetI compliant object


  Title         : design
  Usage         : my @pairs = $sirna_designer->design();
  Purpose       : Design SiRNA oligo pairs.  
  Returns       : A list of SiRNA pairs as Bio::SeqFeature::SiRNA::Pair objects
  Args          : none


  Title         : add_oligos
  Usage         : $sirna_designer->add_oligos($sequence, $start, $rank);
  Purpose       : Add SiRNA olgos to target Bio::Seq as Bio::SeqFeature::SiRNA::Pair objects
  Args          : Oligo sequence and start position (required), rank/score (optional)