Bio-GeneDesign
view release on metacpan or search on metacpan
lib/Bio/GeneDesign.pm view on Meta::CPAN
=head2 reversecodontable
Returns the reverse codon table in use, if there is one.
The reverse codon table is a hash reference where the keys are upper case single
letter amino acids and the values are upper case nucleotides.
my $revcodon_t = $GD->reversecodontable();
$revcodon_t->{"M"} eq "ATG" || die;
This value is set automatically when L<set_codontable|/set_codontable> is run.
=cut
sub reversecodontable
{
my ($self) = @_;
return $self->{'reversecodontable'};
}
=head2 rscutable
Returns the RSCU table in use, if there is one.
The RSCU codon table is a hash reference where the keys are upper case
nucleotides and the values are floats.
my $rscu_t = $GD->rscutable();
$rscu_t->{"ATG"} eq 1.00 || die;
To set this value, use L<set_rscu_table|/set_rscutable>.
=cut
sub rscutable
{
my ($self) = @_;
return $self->{'rscutable'};
}
=head1 FUNCTIONS
=cut
=head2 melt
my $Tm = $GD->melt(-sequence => $myseq);
The -sequence argument is required.
Returns the melting temperature of a DNA sequence.
You can set the salt and DNA concentrations with the -salt and -concentration
arguments; they are 50mm (.05) and 100 pm (.0000001) respectively.
You can pass either a string variable, a Bio::Seq object, or a Bio::SeqFeatureI
object to be analyzed with the -sequence flag.
There are four different formulae to choose from. If you wish to use the nearest
neighbor method, use the -nearest_neighbor flag. Otherwise the appropriate
formula will be determined by the length of your -sequence argument.
For sequences under 14 base pairs:
Tm = (4 * #GC) + (2 * #AT).
For sequences between 14 and 50 base pairs:
Tm = 100.5 + (41 * #GC / length) - (820 / length) + 16.6 * log10(salt)
For sequences over 50 base pairs:
Tm = 81.5 + (41 * #GC / length) - (500 / length) + 16.6 * log10(salt) - .62;
=cut
sub melt
{
my ($self, @args) = @_;
my ($seq, $salt, $conc, $nnflag)
= $self->_rearrange([qw(
sequence
salt
concentration
nearest_neighbor)], @args);
$self->throw("No sequence provided for the melt function")
unless ($seq);
$nnflag = $nnflag ? 1 : 0;
$salt = $salt || .05;
$conc = $conc || .0000001;
my $str = $self->_stripdown($seq, q{}, 1);
if ($nnflag)
{
return _ntherm($str, $salt, $conc);
}
return _melt($str, $salt, $conc);
}
=head2 complement
$my_seq = "AATTCG";
my $complemented_seq = $GD->complement($my_seq);
$complemented_seq eq "TTAAGC" || die;
my $reverse_complemented_seq = $GD->complement($my_seq, 1);
$reverse_complemented_seq eq "CGAATT" || die;
#clean
my $complemented_seq = $GD->complement(-sequence => $my_seq);
$complemented_seq eq "TTAAGC" || die;
my $reverse_complemented_seq = $GD->complement(-sequence => $my_seq,
-reverse => 1);
$reverse_complemented_seq eq "CGAATT" || die;
The -sequence argument is required.
Complements or reverse complements a DNA sequence.
( run in 1.870 second using v1.01-cache-2.11-cpan-df04353d9ac )