[Bio] / FigKernelPackages / FIG.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/FIG.pm

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

revision 1.428, Wed Jan 18 17:41:13 2006 UTC revision 1.429, Mon Jan 23 19:20:54 2006 UTC
# Line 398  Line 398 
398    
399  =cut  =cut
400  #: Return Type ;  #: Return Type ;
401    ################################# make damn sure that you have enough disk ######################
402    ### The following code represents a serious, major update.  Normally, one simply "marks" deleted
403    ### genomes, which is quick and does not require halting the system.
404  sub delete_genomes {  sub delete_genomes {
405      my($self,$genomes) = @_;      my($self,$genomes) = @_;
406      my $tmpD     = "$FIG_Config::temp/tmp.deleted.$$";      my $tmpD     = "$FIG_Config::temp/tmp.deleted.$$";
# Line 415  Line 418 
418      close(TMP);      close(TMP);
419    
420      &run("extract_genomes $tmpD $FIG_Config::data $tmp_Data");      &run("extract_genomes $tmpD $FIG_Config::data $tmp_Data");
421        print STDERR "Please bring the system down for a bit\n";
422  #   &run("mv $FIG_Config::data $FIG_Config::data.deleted; mv $tmp_Data $FIG_Config::data; fig load_all; rm -rf $FIG_Config::data.deleted");      system "echo \"System down due to update of genomes\n\" >> $tmp_Data/Global/why_down";
   
423      &run("mv $FIG_Config::data $FIG_Config::data.deleted");      &run("mv $FIG_Config::data $FIG_Config::data.deleted");
424      &run("mv $tmp_Data $FIG_Config::data");      &run("mv $tmp_Data $FIG_Config::data");
425      &run("fig load_all");      &run("fig load_all");
426      &run("rm -rf $FIG_Config::data.deleted");      print STDERR "Now, you should think about deleting $FIG_Config::data.deleted\n";
427        unlink("$FIG_Config::global/why_down");            ### start allowing CGIs to run
428    #   &run("rm -rf $FIG_Config::data.deleted");
429    }
430    
431    ### Mark a genome as deleted, but do not actually clean up anything.  That whole event
432    ### requires "delete_genomes"
433    ###
434    sub mark_deleted_genomes {
435        my($self,$genomes) = @_;
436        my($genome);
437    
438        my $rdbH = $self->db_handle;
439    
440        my $n = 0;
441        foreach $genome (@$genomes)
442        {
443            if ($self->is_genome($genome) && open(DEL,">$FIG_Config::organisms/$genome/DELETED"))
444            {
445                print DEL "deleted\n";
446                $rdbH->SQL("DELETE FROM genome WHERE ( genome = '$genome' )");
447                $n++;
448            }
449            close(DEL);
450        }
451        return $n;
452    }
453    
454    sub unmark_deleted_genomes {
455        my($self,$genomes) = @_;
456        my($genome);
457    
458        my $rdbH = $self->db_handle;
459    
460        my $n = 0;
461        foreach $genome (@$genomes)
462        {
463            if (-s "$FIG_Config::organisms/$genome/DELETED")
464            {
465                unlink("$FIG_Config::organisms/$genome/DELETED");
466                &run("compute_genome_counts $genome");
467                $n++;
468            }
469        }
470        return $n;
471  }  }
472    
473  =head3 add_genome  =head3 add_genome
# Line 6724  Line 6770 
6770                       @{ read_block( $fh, $seek, $ln-1 ) };                       @{ read_block( $fh, $seek, $ln-1 ) };
6771      }      }
6772    
6773        push(@lines,     grep { ( @$_ >= 15 ) &&
6774                                ( $_->[10] =~ /^[0-9.e-]+$/ ) &&  # E-value
6775                                ( $_->[10] <= $maxP )   &&        # E-value test
6776                                ( $_->[11] =~ /^[0-9.]+$/ ) &&    # bit score
6777                                ( $_->[12] =~ /^\d+$/ ) &&        # query len
6778                                ( $_->[13] =~ /^\d+$/ ) &&        # subj len
6779                                ( $_->[6]  =~ /^\d+$/ ) &&        # q-match start
6780                                ( $_->[7]  =~ /^\d+$/ ) &&        # q-match end
6781                                ( $_->[8]  =~ /^\d+$/ ) &&        # s-match start
6782                                ( $_->[9]  =~ /^\d+$/ ) &&        # s-match end
6783                                ( $_->[2]  =~ /^[0-9.]+$/ )       # percent id
6784                              }
6785                         &get_dynamic_sims($self,$rep_id));
6786    
6787    
6788    
6789        my @linesS = sort { $a->[10] <=> $b->[10] } @lines;  # now sort and remove duplicates
6790        @lines = ();
6791        foreach $_ (@linesS)
6792        {
6793            if ((@lines == 0) || ($lines[$#lines]->[0] ne $_->[0]) || ($lines[$#lines]->[1] ne $_->[1]))
6794            {
6795                push(@lines,$_);
6796            }
6797        }
6798    
6799      #  Similarity filter      #  Similarity filter
6800    
6801      if ( $min_sim > 0 )      if ( $min_sim > 0 )
# Line 6811  Line 6883 
6883      return map { bless( $_, 'Sim' ); $_ } @lines;      return map { bless( $_, 'Sim' ); $_ } @lines;
6884  }  }
6885    
6886    sub get_dynamic_sims {
6887        my($self,$prot_id) = @_;
6888        my $tuples;
6889    
6890        my $rdbH = $self->db_handle;
6891    
6892        if ($rdbH->table_exists('dynamic_sims') &&
6893            ($tuples = $rdbH->SQL("SELECT id1,id2,iden,ali_ln,mismatches,gap_openings,b1,e1,b2,e2,psc,bit_sc,ln1,ln2 FROM dynamic_sims WHERE id1 = '$prot_id'")) &&
6894            (@$tuples > 0))
6895        {
6896            my @tuples = ();
6897            foreach $_ (@$tuples)
6898            {
6899                push(@$_,"blastp");
6900                push(@tuples,$_);
6901            }
6902            return @tuples;
6903        }
6904        return ();
6905    }
6906    
6907    sub insert_dynamic_sims {
6908        my($self,$sims) = @_;
6909        my($sim);
6910        my $rdbH = $self->db_handle;
6911    
6912        if (! $rdbH->table_exists('dynamic_sims'))
6913        {
6914            $rdbH->create_table( tbl => 'dynamic_sims',
6915                                 flds => 'id1 varchar(32),id2 varchar(32), iden float, ali_ln integer, mismatches float,' .
6916                                         'gap_openings float, b1 integer, e1 integer, b2 integer, e2 integer, ' .
6917                                         'psc float, bit_sc float, ln1 integer, ln2 integer');
6918            $rdbH->create_index( tbl => 'dynamic_sims', idx => 'dynamic_sims_idx_id1', flds => 'id1');
6919            $rdbH->create_index( tbl => 'dynamic_sims', idx => 'dynamic_sims_idx_id2', flds => 'id2');
6920        }
6921    
6922        my $rc = 1;
6923        foreach $sim (@$sims)
6924        {
6925            my($id1,$id2,$iden,$ali_ln,$mismatches,$gap_openings,$b1,$e1,$b2,$e2,$psc,$bit_sc,$ln1,$ln2) = @$sim;
6926            if (! ($rdbH->SQL("INSERT INTO dynamic_sims
6927                               (id1,id2,iden,ali_ln,mismatches,gap_openings,b1,e1,b2,e2,psc,bit_sc,ln1,ln2)
6928                               VALUES ('$id1','$id2',$iden,$ali_ln,$mismatches,$gap_openings,$b1,$e1,$b2,$e2,$psc,$bit_sc,$ln1,$ln2)") &&
6929                   $rdbH->SQL("INSERT INTO dynamic_sims
6930                               (id1,id2,iden,ali_ln,mismatches,gap_openings,b1,e1,b2,e2,psc,bit_sc,ln1,ln2)
6931                               VALUES ('$id2','$id1',$iden,$ali_ln,$mismatches,$gap_openings,$b2,$e2,$b1,$e1,$psc,$bit_sc,$ln2,$ln1)")))
6932    
6933            {
6934                $rc = 0;
6935            }
6936        }
6937        return $rc;
6938    }
6939    
6940  sub read_block {  sub read_block {
6941      shift if UNIVERSAL::isa($_[0],__PACKAGE__);      shift if UNIVERSAL::isa($_[0],__PACKAGE__);
# Line 13748  Line 13873 
13873              close(GLOBDEL);              close(GLOBDEL);
13874              close(TMP);              close(TMP);
13875              $dbh->load_table(tbl => 'deleted_fids', file => $tmpfile, delim => "\t" );              $dbh->load_table(tbl => 'deleted_fids', file => $tmpfile, delim => "\t" );
13876                $dbh->create_index( tbl => 'deleted_fids', idx => 'deleted_fids_fid_idx', flds => 'fid');
13877                $dbh->create_index( tbl => 'deleted_fids', idx => 'deleted_fids_genome_idx', flds => 'genome');
13878              unlink($tmpfile);              unlink($tmpfile);
13879          }          }
13880      }      }

Legend:
Removed from v.1.428  
changed lines
  Added in v.1.429

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3