[Bio] / FigKernelScripts / check_sims_basic.pl Repository:
ViewVC logotype

Diff of /FigKernelScripts/check_sims_basic.pl

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.4, Fri Mar 11 20:52:34 2005 UTC revision 1.5, Mon Apr 18 20:08:15 2005 UTC
# Line 2  Line 2 
2    
3  $SIG{HUP} = 'ignore';  $SIG{HUP} = 'ignore';
4    
5    use FIG;
6  use File::Path;  use File::Path;
7  use File::Basename;  use File::Basename;
8    
9  $usage = "usage: check_sims_basic [-delint_dir=Dir] [-logfile=log] NR [ < sims | - | SimsDir | Sims1 Sims2 Sims3 ...] > checked.sims [2> errors (recommended if a logfile isn't specified)]";  $usage = "usage: check_sims_basic [-delint_dir=Dir] [-logfile=log] NR [ < sims | - | SimsDir | Sims1 Sims2 Sims3 ...] > checked.sims [2> errors (recommended if a logfile isn't specified)]";
10    
11  $outdir  = "";  $outdir  = "";
12  $logfh   = \*STDERR;  $logfile = "";
13  $trouble = 0;  $trouble = 0;
14  for ($i=0; $i < @ARGV; )  for ($i=0; $i < @ARGV; )
15  {  {
# Line 28  Line 29 
29      {      {
30          $logfile = $1;          $logfile = $1;
31          splice @ARGV, $i, 1;          splice @ARGV, $i, 1;
32          open(LOG, ">$logfile") || die "Could not open $logfile";          open($logfh, ">$logfile") || die "Could not open $logfile";
         $logfh = \*LOG;  
33      }      }
34      elsif (-s $ARGV[$i]) {      elsif (-s $ARGV[$i]) {
35          ++$i;          ++$i;
# Line 75  Line 75 
75  }  }
76  die "There were nonexistent input files" if $trouble;  die "There were nonexistent input files" if $trouble;
77    
78    unless ($logfile) { $logfh = \*STDERR; }
79    unless ($outdir)  { $outfh = \*STDOUT; }
80    
81    opendir(ORGS, "$FIG_Config::organisms") || die "Could not open dir $FIG_Config::organisms";
82    @env = grep s{^(9999999\.\d+)}{$FIG_Config::organisms/$1/Features/peg/fasta}, readdir(ORGS);
83    closedir(ORGS) || die "Could not close dir $FIG_Config::organisms";
84    
85  $/ = "\n>";  foreach $file ($nr, @env)
 open(NR,"<$nr") || die $usage;  
 print STDERR "Loading lengths from $nr ...\n" if $ENV{FIG_VERBOSE};  
 while (defined($entry = <NR>))  
 {  
     chomp $entry;  
     if ($entry =~ /^>?(\S+)[^\n]*\n(.*)/s)  
     {  
         $id  =  $1;  
         $seq =  $2;  
         $seq =~ s/\s//gs;  
         $ln{$id} = length($seq);  
     }  
 }  
 $/ = "\n";  
 close(NR);  
   
 if ($outdir)  
86  {  {
87      $file  = "$outdir/" . basename($ARGV[0]);      open(TMP, "<$file") || die "Could not read-open $file";
88      open(OUTPUT, ">$file") || die "could not write-open $file";      print STDERR "Loading lengths from $file ...\n" if $ENV{FIG_VERBOSE};
89      print STDERR "Opening $file" if $ENV{FIG_VERBOSE};      while (($id, $seqP) = &FIG::read_fasta_record(\*TMP))
     $outfh = \*OUTPUT;  
 }  
 else  
90  {  {
91      $outfh = \*STDOUT;          $ln{$id} = length($$seqP);
92  }  }
93    }
94    
95    
96  foreach $simfile (@ARGV)  foreach $simfile (@ARGV)
97  {  {
98      print STDERR "Processing $simfile\n" if $ENV{FIG_VERBOSE};      print STDERR "Processing $simfile\n" if $ENV{FIG_VERBOSE};
99    
100      open(SIMFILE, "<$simfile") || die "Could not open $simfile";      open(SIMFILE, "<$simfile") || die "Could not open $simfile";
101        if ($outdir)
102        {
103            $outfile  = "$outdir/" . basename($simfile);
104            open($outfh, ">$outfile") || die "could not write-open $outfile";
105        }
106    
107      while (defined($sim = <SIMFILE>))      while (defined($sim = <SIMFILE>))
108      {      {
109          chomp $sim;          chomp $sim;
110    
111          if ($sim =~ m/^\S+\t\S+\t(\d+|\d+\.\d+)(\t\d+){7}\t(\d+(\.\d*)?e[-+]?\d+|\d+\.\d+)\t(\d\.\d*e[-+]?\d+|\d+\.\d+|\d+)/)          if ($sim =~ m/^(\S+)\t(\S+)\t(\d+|\d+\.\d+)\t\d+\t\d+\t\d+\t\d+\t\d+\t\d+\t\d+\t(\d+(\.\d*)?e[-+]?\d+|\d+\.\d+)\t(\d\.\d*e[-+]?\d+|\d+\.\d+|\d+)\t(\d+)\t(\d+)/o)
112          {          {
113              # print STDERR "$1\t$2\t$3\t$4\t$5\t$6\n";              # die "$1, $2, $3, $4, $5, $6, $7, $8, $9\n";
114              ($id1,$id2,$iden,$ali_ln,$mis,$gaps,$b1,$e1,$b2,$e2,$psc,$bsc,$ln1,$ln2) =              ($id1, $id2, $ln1, $ln2) = ($1, $2, $7, $8);
115                  split(/\t/,$sim);              # die "$id1, $id2, $ln1, $ln2";
116    
117              if ($ln{$id1} && $ln{$id2} && ($ln{$id1} == $ln1) && ($ln{$id2} == $ln2))              if ($ln{$id1} && $ln{$id2} && ($ln{$id1} == $ln1) && ($ln{$id2} == $ln2))
118              {              {
# Line 129  Line 122 
122              {              {
123                  if ($ln{$id1})                  if ($ln{$id1})
124                  {                  {
125                      if ($ln{$id1} != $ln1) { print $logfh "badlen1\t$ARGV, $.:\t$id1\t$ln{$id1}\t$ln1\t$sim\n"; }                      if ($ln{$id1} != $ln1) { print $logfh "badlen1\t$simfile, $.:\t$id1\t$ln{$id1}\t$ln1\t$sim\n"; }
126                  }                  }
127                  else                  else
128                  {                  {
129                      print $logfh "undef1\t$ARGV, $.:\t$id1\t\t\t$sim\n";                      print $logfh "undef1\t$simfile, $.:\t$id1\t\t\t$sim\n";
130                  }                  }
131    
132                  if ($ln{$id2})                  if ($ln{$id2})
133                  {                  {
134                      if ($ln{$id2} != $ln2) { print $logfh "badlen2\t$ARGV, $.:\t$id2\t$ln{$id2}\t$ln2\t$sim\n"; }                      if ($ln{$id2} != $ln2) { print $logfh "badlen2\t$simfile, $.:\t$id2\t$ln{$id2}\t$ln2\t$sim\n"; }
135                  }                  }
136                  else                  else
137                  {                  {
138                      print $logfh "undef2\t$ARGV, $.:\t$id2\t\t\t$sim\n";                      print $logfh "undef2\t$simfile, $.:\t$id2\t\t\t$sim\n";
139                  }                  }
140              }              }
141          }          }
142          else          else
143          {          {
144              print $logfh "INVALID FORMAT\t$ARGV, $.:\t$sim\n";              print $logfh "INVALID FORMAT\t$simfile, $.:\t$sim\n";
145          }          }
146      }      }
147  }  }

Legend:
Removed from v.1.4  
changed lines
  Added in v.1.5

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3