G::Seq
OverLapping
G::Seq::OverLapping - Perl extension for blah blah blah
|
Globals (from use vars definitions) |
@EXPORT |
$VERSION |
@EXPORT_OK |
use G::Seq::OverLapping; blah blah blah
|
Stub documentation for G::Seq::OverLapping was created by h2xs. It looks like the author of the extension was negligent enough to leave the stub unedited.
Blah blah blah.
|
DESTROY | No description | Code |
_over_lapping_printer | No description | Code |
new | No description | Code |
over_lapping_finder | No description | Code |
Methods description
Methods code
sub DESTROY
{ my $self = shift;
}
sub _over_lapping_printer
{ &opt_default(output=>"stdout",filename=>"over_lapping.csv");
my @args=opt_get(@_);
my $result=shift @args;
my $printer=opt_val("output");
my $filename=opt_val("filename");
my $debug=shift;
if($printer eq "f"){
open(FILE,">$filename");
foreach(sort{$a <=> $b} keys(%$result)){
print FILE "$$result{$_}{before},$$result{$_}{after},$$result{$_}{BeforeStart},$$result{$_}{BeforeEnd},$$result{$_}{AfterStart},$$result{$_}{AfterEnd},$$result{$_}{OverLap},$$result{$_}{type},$$result{$_}{BeforeDirect},$$result{$_}{AfterDirect}\n";
}
print FILE "\n\n";
close(FILE);
}
else{
foreach(sort{$a <=> $b} keys(%$result)){
&msg_send("$$result{$_}{before}\t$$result{$_}{after}\t$$result{$_}{BeforeStart}..$$result{$_}{BeforeEnd}\t$$result{$_}{AfterStart}..$$result{$_}{AfterEnd}\t$$result{$_}{OverLap}\t$$result{$_}{type}\t$$result{$_}{BeforeDirect}\t$$result{$_}{AfterDirect}\n");
}
}
}
sub new
{ my $pkg = shift;
my $filename = shift;
my $option = shift;
my $this;
return $this;
}
over_lapping_finder | description | top | prev | next |
sub over_lapping_finder
{ &opt_default(output=>"stdout",filename=>"over_lapping.csv");
my @args=opt_get(@_);
my $gb=opt_as_gb(shift @args);
my $output=opt_val("output");
my $filename=opt_val("filename");
my $num=1;
my $tmp;
my $start;
my $end;
my %result;
my $q;
my $over;
my $switch;
my $type;
foreach($gb->cds()){
$over=0;
$switch=0;
$tmp=$num-1;
if($gb->{"CDS$num"}->{start} > $gb->{"CDS$tmp"}->{start} && $gb->{"CDS$num"}->{end} < $gb->{"CDS$tmp"}->{end}){
$switch=1;
$over=-($gb->{"CDS$num"}->{end}-$gb->{"CDS$num"}->{start}+1);
$type="internal";
}
elsif($gb->{"CDS$num"}->{direction} eq 'direct' && $gb->{"CDS"."$tmp"}->{direction} eq 'direct'){
$start = $gb->{"CDS$num"}->{start};
$end = $gb->{"CDS"."$tmp"}->{end};
if($start-$end-1<0){
$switch=1;
$over=$start-$end-1;
$type="uni-directional";
}
}
elsif($gb->{"CDS$num"}->{direction} eq 'complement' && $gb->{"CDS"."$tmp"}->{direction} eq 'complement'){
$start = $gb->{"CDS$num"}->{start};
$end = $gb->{"CDS"."$tmp"}->{end};
if($start-$end-1<0){
$switch=1;
$over=$start-$end-1;
$type="uni-directional";
}
}
elsif($gb->{"CDS$num"}->{direction} eq 'direct' && $gb->{"CDS"."$tmp"}->{direction} eq 'complement'){
$start = $gb->{"CDS$num"}->{start};
$end = $gb->{"CDS"."$tmp"}->{end};
if($start-$end-1<0){
$switch=1;
$over=$start-$end-1;
$type="head-on";
}
}
elsif($gb->{"CDS$num"}->{direction} eq 'complement' && $gb->{"CDS"."$tmp"}->{direction} eq 'direct'){
$start = $gb->{"CDS$num"}->{start};
$end = $gb->{"CDS"."$tmp"}->{end};
if($start-$end-1<0){
$switch=1;
$over=$start-$end-1;
$type="end-on";
}
}
if($switch==1){
$result{$q}{before}="CDS$tmp";
$result{$q}{after}="CDS$num";
$result{$q}{BeforeStart}=$gb->{"CDS$tmp"}->{start};
$result{$q}{BeforeEnd}=$gb->{"CDS$tmp"}->{end};
$result{$q}{AfterStart}=$gb->{"CDS$num"}->{start};
$result{$q}{AfterEnd}=$gb->{"CDS$num"}->{end};
$result{$q}{BeforeDirect}=$gb->{"CDS$tmp"}->{direction};
$result{$q}{AfterDirect}=$gb->{"CDS$num"}->{direction};
$result{$q}{OverLap}=$over;
$result{$q}{type}=$type;
$q++;
}
$num++;
}
if($output eq "f"){
_over_lapping_printer(\%result,-output=>$output,-filename=>$filename);
}
if($output eq "stdout"){
_over_lapping_printer(\%result,-output=>"stdout");
}
return\% result;
}
General documentation