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

View of /FigKernelScripts/make_annotations_for_sprout.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.12 - (download) (as text) (annotate)
Mon Dec 5 18:56:37 2005 UTC (13 years, 11 months ago) by olson
Branch: MAIN
CVS Tags: mgrast_dev_08112011, rast_rel_2009_05_18, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, myrast_rel40, rast_rel_2008_06_16, mgrast_dev_05262011, rast_rel_2008_12_18, mgrast_dev_04082011, rast_rel_2008_07_21, rast_rel_2010_0928, rast_2008_0924, mgrast_version_3_2, mgrast_dev_12152011, rast_rel_2008_04_23, mgrast_dev_06072011, rast_rel_2008_09_30, rast_rel_2009_0925, rast_rel_2010_0526, rast_rel_2014_0729, mgrast_dev_02212011, rast_rel_2010_1206, caBIG-05Apr06-00, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2010_0118, mgrast_rel_2008_0924, mgrast_rel_2008_1110_v2, rast_rel_2009_02_05, rast_rel_2011_0119, mgrast_rel_2008_0625, mgrast_release_3_0_4, mgrast_release_3_0_2, mgrast_release_3_0_3, mgrast_release_3_0_1, mgrast_dev_03312011, mgrast_release_3_1_2, mgrast_release_3_1_1, mgrast_release_3_1_0, mgrast_dev_04132011, rast_rel_2008_10_09, mgrast_dev_04012011, rast_release_2008_09_29, mgrast_rel_2008_0806, mgrast_rel_2008_0923, mgrast_rel_2008_0919, rast_rel_2009_07_09, rast_rel_2010_0827, mgrast_rel_2008_1110, myrast_33, rast_rel_2011_0928, rast_rel_2008_09_29, mgrast_rel_2008_0917, rast_rel_2008_10_29, mgrast_dev_04052011, mgrast_dev_02222011, caBIG-13Feb06-00, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.11: +17 -0 lines
Add license words.

# -*- perl -*-
#
# Copyright (c) 2003-2006 University of Chicago and Fellowship
# for Interpretations of Genomes. All Rights Reserved.
#
# This file is part of the SEED Toolkit.
# 
# The SEED Toolkit is free software. You can redistribute
# it and/or modify it under the terms of the SEED Toolkit
# Public License. 
#
# You should have received a copy of the SEED Toolkit Public License
# along with this program; if not write to the University of Chicago
# at info@ci.uchicago.edu or the Fellowship for Interpretation of
# Genomes at veronika@thefig.info or download a copy from
# http://www.theseed.org/LICENSE.TXT.
#


use FIG;
($fig = new FIG) || die "FIG constructor failed";

$usage = "make_FIG_annotations_for_sprout GenomeFile AnnotationsFile IsTargetOfFile MadeAnnotationFile";

(@ARGV
&& ($genomes_file     = shift) && (-s $genomes_file)
&& ($annotations_file = shift)
&& ($istarget_file    = shift)
&& ($makeannot_file   = shift)
) || die "\n   usage: $usage\n\n";

@genomes = grep { m/^(\S+)/; $_ = $1 } `cut -f1 $genomes_file`;

open(ANNOT,  "| sort -u > $annotations_file") || die "could not write-open $annotations_file";
open(TARGET, "| sort -u > $istarget_file")    || die "could not write-open $istarget_file";
open(MAKEAN, "| sort -u > $makeannot_file")   || die "could not write-open $makeannot_file";

$time = time();
%user_time = (KEGG => $time + 1,
              NCBI => $time + 2,
              SwissProt => $time + 3,
              UniProt => $time + 4);
$tick = 0;
foreach $org (@genomes)
{
    print STDERR "Processing $org " if $ENV{FIG_VERBOSE};
    
    @pegs = $fig->pegs_of($org);
    warn "No pegs for $org" unless @pegs;
    
    foreach $peg (@pegs)
    {
        my %seen_timestamp;
        if ($ENV{FIG_VERBOSE} && ($tick >= 1000)) { print STDERR '.'; $tick = 0; } else {++$tick; }
        
        if ($func = $fig->function_of($peg))
        {
            if (!$fig->hypo($func))
            {
                print ANNOT  "$peg:$time\t$time\tFIG\\nSet FIG function to\\n$func\n";
                print TARGET "$peg\t$peg:$time\n";
                print MAKEAN "FIG\t$peg:$time\n";
            }
            
            foreach $x ($fig->feature_annotations($peg,"raw"))
            {
                (undef, $timestamp, $user, $annot) = @$x;
                $annot =~ s/\cM//gs;
                $annot =~ s/\n/\\n/gs;
                $annot =~ s/\t/\\t/gs;
#               if ($annot !~ m/^Set .*function to/)
                $annot =~ s/Set master function/Set FIG function/s;
                {
                    if ($timestamp =~ /^\d+$/)
                    {
                        while ($seen_timestamp{$timestamp}) 
                        {
                            $timestamp++;
                        }
                        $seen_timestamp{$timestamp} = 1;
                        print ANNOT  "$peg:$timestamp\t$timestamp\t$user\\n$annot\n";
                        print TARGET "$peg\t$peg:$timestamp\n";
                        print MAKEAN "$user\t$peg:$timestamp\n";
                    }
                    else
                    {
                        print STDERR "$peg has nonnumeric timestamp in annotations\n";
                    }
                }
            }

# We pick up external assignments separately, so these are unnecessary
#           
#           if (@aliases = $fig->mapped_prot_ids($peg))
#           {
#               foreach $alias_record (@aliases)
#               {
#                   $alias = $alias_record->[0];
#                   $func  = $fig->function_of($alias);
#                   
#                   $user  = $setname = "";
#                   if ($alias =~ m/^fig\|/)
#                   {
#                       next;
#                   }
#                   elsif ($alias =~ m/^kegg\|/)
#                   {
#                       $user = $setname = 'KEGG';
#                   }
#                   elsif ($alias =~ m/^gi\|/)
#                   {
#                       $user = $setname = 'NCBI';
#                   }
#                   elsif ($alias =~ m/^(sp|tr|tn)\|/)
#                   {
#                       $user = $setname = 'SwissProt';
#                   }
#                   elsif ($alias =~ m/^uni\|/)
#                   {
#                       $user = $setname = 'UniProt';
#                   }
#                   else
#                   {
#                       warn "could not handle alias $alias";
#                       next;
#                   }
#                   
#                   if ($user && $setname && $func)
#                   {
#                       my $thistime = $user_time{$user};
#                       die "No time found for user $user" unless defined($thistime);
#                       print ANNOT  "$alias:$thistime\t$thistime\t$user\\nSet $setname function to\\n$func\n";
#                       print TARGET "$peg\t$alias:$thistime\n";
#                       print MAKEAN "$user\t$alias:$thistime\n";
#                   }
#               }
#           }
        }
    }
    
    print STDERR "\n" if $ENV{FIG_VERBOSE};
}

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3