G::Seq FreeEnergy
SummaryIncluded librariesPackage variablesDescriptionGeneral documentationMethods
Summary
  G::Seq::FreeEnergy - Analysis methods related to FreeEnergy
Package variables
No package variables defined.
Included modules
G::Messenger
G::Tools::Graph
SelfLoader
SubOpt
Inherit
Exporter
Synopsis
No synopsis!
Description
    This class is a part of G-language Genome Analysis Environment, 
    collecting sequence analysis methods related to GC skew.
Methods
RNAfold
No description
Code
foreach_RNAfold
No description
Code
Methods description
None available.
Methods code
RNAfolddescriptionprevnextTop
sub RNAfold {
    &opt_default(output=>"stdout",filename=>'FreeEnergy.csv');
    my @args=opt_get(@_);

    my $seq=shift @args;
    my $start=shift @args;
    my $end=shift @args;
    my $filename=opt_val("filename");
    my $rna_fold_result;
    my $sq;
    my $num;
    my $result;

    $sq = substr($seq,$start,$end-$start + 1);
    $rna_fold_result=qx!echo $sq | RNAfold!;
    $num++;
#    $result=(split(/\s\(\s/,$rna_fold_result))[1];
# $result=~tr/\)\n//d;
# unable to retrive sequence over 58 letters
# suggested by Atsuko Kisi and Hayataro Kouchi
$result = (split(/\(/, $rna_fold_result))[-1]; chomp($result); $result =~ s/\)//; if(&opt_val("output") eq "stdout"){ &msg_send($result,"\n"); } if(&opt_val("output") eq "f"){ open(FILE,">>$filename"); print FILE $result,"\n"; close(FILE); } mkdir("graph",0777); system('mv','rna.ps','graph/'); return $result;
}
foreach_RNAfolddescriptionprevnextTop
sub foreach_RNAfold {
    &opt_default(window=>50,output=>"show",filename=>"FreeEnergy.csv");
    my @args=opt_get(@_);
    
    my $seq=shift @args;
    my $start=shift @args;
    my $end=shift @args;
    my $number=opt_val("window");
    my $printer=opt_val("output");
    my $filename=opt_val("filename");
    my $i;
    my $cut;
    my $array;
    my $rna_fold_result;
    my $sq;
    my $num;
    my $x;
    my $y;
    my @y;
    my @RNA;


    if($printer=~/f/){
	open(FILE,">$filename");
    }

    $cut = substr($$seq,$start,$end-$start);


    for($i=0 ; $i<=length($cut)-$number ; $i=$i+1){
 
        $y=$i+$start;
        $sq = substr($$seq,$y,$number);


        $rna_fold_result=qx!echo $sq | RNAfold!;
        $num++;
        $rna_fold_result=~tr/()//d;
$rna_fold_result=~tr/[A-Z]\n//d;
$rna_fold_result=~s/\.\.//g;
$rna_fold_result=~s/\.\ //g;
$rna_fold_result=~tr/ //d;
push(@RNA,$rna_fold_result); if($printer=~/f/){ print FILE $y,",",$y+$number,",",$rna_fold_result,"\n"; } if($printer!~/[fn]/){ &msg_send($y,"..",$y+$number,"\t",$rna_fold_result,"\n"); } push(@y,$y); } unlink("rna.ps"); if($printer=~/g/ || $printer=~/show/){ &G::Tools::Graph::_UniMultiGrapher(\@y,\@RNA,-filename=>"FreeEnergy.png",-x=>"position",-y=>"free energy",-title=>"free energy"); } msg_gimv('graph/FreeEnergy.png') if($printer=~/show/); return\@ RNA;
}
General documentation
No general documentation available.