G::Seq

OverLapping

Summary Included libraries Package variables Synopsis Description General documentation Methods

Summary
G::Seq::OverLapping - Perl extension for blah blah blah
Package variables top
Globals (from use vars definitions)
@EXPORT
$VERSION
@EXPORT_OK
Included modulestop
G::Messenger
SubOpt
strict
Inherit top
AutoLoader Exporter
Synopsistop
  use G::Seq::OverLapping;
blah blah blah
Descriptiontop
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.
Methodstop
DESTROYNo descriptionCode
_over_lapping_printerNo descriptionCode
newNo descriptionCode
over_lapping_finderNo descriptionCode

Methods description


Methods code

DESTROYdescriptiontopprevnext
sub DESTROY {
    my $self = shift;
}
_over_lapping_printerdescriptiontopprevnext
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");
	}
    }
}
newdescriptiontopprevnext
sub new {
    my $pkg = shift;
    my $filename = shift;
    my $option = shift;
    my $this;

    return $this;
}
over_lapping_finderdescriptiontopprevnext
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

AUTHOR top
A. U. Thor, a.u.thor@a.galaxy.far.far.away
SEE ALSO top
perl(1).