G::Tools
SIM4
Globals (from use vars definitions) |
@EXPORT |
$VERSION |
@EXPORT_OK |
DESTROY | No description | Code |
_sim4 | No description | Code |
form_sim4 | No description | Code |
mapping_sim4 | No description | Code |
new | No description | Code |
Methods description
Methods code
sub DESTROY
{ my $self = shift;
}
sub _sim4
{ &opt_default(qsub=>'off',input=>"file",output=>"STDOUT");
my @param;
my @tmp;
foreach(@_){
if(/[WXKCRDHAPNBS]\=\d/){
push(@param,$_);
}
else{
push(@tmp,$_);
}
}
@_=@tmp;
my @args=opt_get(@_);
my $qsub=&opt_val("qr");
my $input=&opt_val("input");
my $output=&opt_val("output");
my $data;
my $file;
my $seq;
my %opt;
my $param;
my $num;
my $output_file=();
$output_file = "> ".$output if($output ne "STDOUT");
$data=shift @args;
if($input eq 'seq'){
$seq=shift @args;
opendir(DIR,'/tmp');
@tmp=readdir(DIR);
$num=$##tmp+1+time;
@tmp=keys(%$seq);
open(FILE,'>/tmp/SIM4_'.$num.'.seq');
print FILE ">$tmp[0]\n";
print FILE $$seq{"$tmp[0]"},"\n";
close(FILE);
$file='/tmp/SIM4_'.$num.'.seq';
}
else{
$file=shift @args;
}
$opt{W}=&opt_val("W");
$opt{X}=&opt_val("X");
$opt{K}=&opt_val("K");
$opt{C}=&opt_val("C");
$opt{R}=&opt_val("R");
$opt{D}=&opt_val("D");
$opt{H}=&opt_val("H");
$opt{A}=&opt_val("A");
$opt{P}=&opt_val("P");
$opt{N}=&opt_val("N");
$opt{B}=&opt_val("B");
$opt{S}=&opt_val("S");
foreach(sort keys(%opt)){
next if($opt{$_} eq '');
push(@param,$_.'=');
push(@param,$opt{$_});
}
$param=join(' ',@param);
system("sim4 $data $file @param $output_file")if($qsub eq "off");
system('qr',"sim4 $data $file $param $output_file")if($qsub eq "on");
unlink('/tmp/sim4'.$num.'.seq') if($input eq 'seq' && $qsub ne 'on');
return("$data $file $param");
}
sub form_sim4
{ &opt_default(input=>"SIM4_OUT",output=>"SIM4_RESULT");
my @args=opt_get(@_);
my $input=&opt_val("input");
my $output=&opt_val("output");
my $memory=shift @args;
$input = $input if($input ne "SIM4_OUT");
$output = $output if($output ne "SIM4_RESULT");
open(FILE,"$input");
open(W_FILE,">$output");
while(<FILE>){
my (@sum1,@sum2,@aaa,@part,@z1,@w1,@w2);
my ($wal,$m,$g,$data,$num,$n,$pos1,$pos2,$name,$moto);
if($_ =~ /^seq1/){
chomp;
print W_FILE "-------------------------------------------------------------------------\n\n";
@sum1 = split(/,/,$_);
@sum2 = split(/ +/,$sum1[1]);
$wal = $sum2[1];
$_ =~ s/^seq1/cDNA /g;
print W_FILE "$_\n";
}
elsif($_ =~ /^seq2/){
chomp;
$_ =~ s/^seq2/cut /g;
print W_FILE "$_\n";
@aaa = split(/\//,$_);
$m=split(/\//,$_);
$g=$m-1;
$name = $aaa[$g];
@part = split(/_/,$name);
$data = $part[0];
$num = $part[1];
print W_FILE "contig = ";
$moto=$memory->{Genome_ID};
print W_FILE "$moto/$data\n";
}
elsif($_ =~ /^[0-9]/){
chomp;
@z1 = split(/ +/,$_);
@w1 = split(/-/,$z1[0]);
@w2 = split(/-/,$z1[1]);
$w2[0] =~ s/[^0-9]//g;
$w2[1] =~ s/[^0-9]//g;
$pos1 = $num + $w2[0] - 1;
$pos2 = $num + $w2[1] - 1;
print W_FILE "$z1[0]\t$z1[1]\t<$pos1-$pos2>\t$z1[2]\t$z1[3]\n";
}
else{
print W_FILE $_;
}
}
}
sub mapping_sim4
{ &opt_default(seq1=>"",seq2=>"",output=>"SIM4_OUT");
my @args=opt_get(@_);
my $seq1=&opt_val("seq1");
my $seq2=&opt_val("seq2");
my $output=&opt_val("output");
my $memory=shift @args;
##::::::::::::::::::::
## param
##::::::::::::::::::::
my @param;
my @tmp;
foreach(@_){
if(/[WXKCRDHAPNBS]\=\d/){
push(@param,$_);
}
else{
push(@tmp,$_);
}
}
@_=@tmp;
my $seq;
my %opt;
my $param;
my $num;
my $sentence;
$output = $output if($output ne "SIM4_OUT");
$opt{W}=&opt_val("W");
$opt{X}=&opt_val("X");
$opt{K}=&opt_val("K");
$opt{C}=&opt_val("C");
$opt{R}=&opt_val("R");
$opt{D}=&opt_val("D");
$opt{H}=&opt_val("H");
$opt{A}=&opt_val("A");
$opt{P}=&opt_val("P");
$opt{N}=&opt_val("N");
$opt{B}=&opt_val("B");
$opt{S}=&opt_val("S");
foreach(sort keys(%opt)){
next if($opt{$_} eq '');
push(@param,$_.'=');
push(@param,$opt{$_});
}
$param=join(' ',@param);
if($seq1 ne "" && $seq2 ne ""){
my $data;
my $file;
if(-f $seq1){
if(-f $seq2){
$data = $seq1;
$file = $seq2;
system("sim4 $data $file @param >> $output");
}
}
elsif(-d $seq2){
my (@file2,$num2,$h);
opendir(DIR2, "$seq2");
@file2 = readdir(DIR2);
$num2 = @file2;
for($h=2;$h<$num2;$h++){
$data = $seq1;
$file = "$seq2$file2[$h]";
system("sim4 $data $file @param >> $output");
}
}
elsif(-d $seq1){
my (@file1,$num1,$i);
opendir(DIR1, "$seq1");
@file1 = readdir(DIR1);
$num1 = @file1;
if(-f $seq2){
for($i=2;$i<$num1;$i++){
$data = "$seq1$file1[$i]";
$file =$seq2;
system("sim4 $data $file @param >> $output");
}
}
elsif(-d $seq2){
my(@file2,$num1,$num2,$i,$j);
opendir(DIR2,"$seq2");
@file2 = readdir (DIR2);
$num2 = @file2;
for($i=2;$i<$num1;$i++){
for($j=2;$j<$num2;$j++){
$data = "$seq1$file1[$i]";
$file = "$seq2$file2[$j]";
system("sim4 $data $file @param >> $output");
}
}
}
}
}
else{
my ($bcount,$ccount);
$bcount=0;
$ccount=0;
while(1){
if($memory->{$ccount}->{Query_Path}->{$bcount}=~ /\w/){
my $data;
my $file;
$data=$memory->{$ccount}->{Query_Path}->{$bcount};
$file=$memory->{$ccount}->{Genome_Path}->{$bcount};
system("sim4 $data $file @param >> $output");
$bcount ++;
}
else{
$bcount=0;
$ccount++;
if($memory->{$ccount}->{Query_Path}->{$bcount} eq ""){
last;
}
}
}
}
}
sub new
{ my $pkg = shift;
my $filename = shift;
my $option = shift;
my $this;
return $this;
}
General documentation
No general documentation available.