BioPerl
view release on metacpan or search on metacpan
examples/sirna/rnai_finder.cgi view on Meta::CPAN
my $NOLIGOS = 3;
my $log = $TMPDIR . 'RNAiFinder.log';
open (LOG, ">>$log") or die $!;
carpout(LOG);
print $q->header,
$q->start_html;
print $q->h1('RNAi Finder');
if ($q->param('Design')) {
if ($q->param('accession') and !$q->param('seq')) {
$target = get_target();
}
else {
$target = make_target();
}
get_rnai($target);
}
else {
get_settings();
}
sub get_settings {
print <<EOM1;
<P>Oligos are designed as described on the <A HREF="http://www.mpibpc.gwdg.de/abteilungen/100/105/sirna.html" TARGET="Tuschl">Tuschl lab web page</A> and are ranked as follows:
<UL>
<LI><B>New:</B> Selecting 'Pol3-compatible targets' looks for oligos with the
pattern NAR(N17)YNN which can be synthesized or expressed from a Pol3 promoter.
<br>This selection <b>overrides</b> the 'Cutoff' rank.
<LI>Oligos with Rank = 1 (best) match the AAN(19)TT rule.
<LI>Oligos with Rank = 2 match the AAN(21) rule
<LI>Oligos with Rank = 3 match the NAN(21) rule.
</UL>
<P>If percent GC and specificity are similar, Rank 1 oligos are better. All 3 prime overhangs are converted to TT; the rest of the sequence is transcribed into RNA</P>
<h3>Modifications to published rules:</h3>
<ul>
<li>
Runs of 3 or more consecutive Gs on either strand are skipped - these can cause problems in synthesis.
<li>Users may choose to exclude oligos that overlap single nucleotide polymorphisms (ON by default). SNP data comes from the NCBI dbSNP database.
<li>'Low-complexity' regions (such as runs of a single nucleotide) are also excluded.
</ul>
EOM1
print $q->start_form;
print $q->h2('Enter your sequence and other parameters:'), "\n";
print $q->p('The values already here are DEFAULTS - you should change them to suit YOUR sequence');
print $q->start_table();
print $q->TR( $q->td({-align=> 'left'},
[
$q->textfield(-name => 'mingc', -default => '0.40'),
$q->textfield(-name => 'maxgc', -default => '0.60'),
]
),
$q->td({-align=> 'left'},
$q->popup_menu(-name => 'worstrank',
-values => [1,2,3],
-default => 2,
),
$q->b('OR'),
$q->checkbox(-name => 'pol3',
-label => 'Pol3 compatible',
-default => 0,
),
),
);
print $q->TR( $q->th({-align=> 'left'}, 'Exclude oligos with SNPs?'),
$q->td($q->radio_group(-name => 'avoid_snps',
-values => [1,0],
-default => 1,
-labels => {1 => 'Yes', 0 => 'No'}
)),
);
print $q->TR( $q->th({-align=> 'left'}, 'Sequence Name:'),
$q->td({-align=> 'left'},$q->textfield('accession')),
$q->td({-align=> 'left'},
$q->em( q(Enter an accession and you won't have to enter the <br>sequence or start/stop. Use accessions beginning with NM_ if possible.))),
);
print $q->TR( $q->th({-align=> 'left'}, ['Position of initiator ATG:',
'NT after start to exclude:',
'Position of Stop codon:' ]));
print $q->TR( $q->td({-align=> 'left'},
[$q->textfield(-name => 'cdstart', -default => 1),
$q->textfield(-name => 'atgpad', -default => $ATGPAD),
$q->textfield('cdend'), ]));
print $q->TR( $q->th({-align=> 'left'}, ['Minimum Fraction GC:',
'Maximum Fraction GC:',
'Rank cutoff',
]));
print $q->TR($q->th({-align=> 'left', -colspan=>2},'cDNA Sequence in plain text or FASTA format'),
$q->td( $q->a({-href =>'Fasta_format.html', -target => 'Fasta_desc'}, 'What is FASTA format?')),
);
print $q->TR($q->td({-align => 'left', -colspan=>3},
$q->textarea( -name =>'seq',
-rows => 4,
-columns => 80,
-wrap => 'virtual',
)));
print $q->TR( $q->th({-align => 'left', -colspan=>3},
'Output options: '));
print $q->TR( $q->td({-align=> 'left'},
[ $q->checkbox(-name => 'Graphic', -checked => 'checked'),
$q->checkbox(-name => 'Table', -checked => 'checked'),
]));
print $q->TR($q->td({-align=> 'left', -colspan=>3}, $q->submit('Design')));
print $q->end_table();
print $q->end_form;
}
sub get_rnai {
# design and output RNAi reagents
my ($gene) = @_;
( run in 0.716 second using v1.01-cache-2.11-cpan-364913b4093 )