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

View of /FigKernelScripts/generate_subsys_tables_for_sprout.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.8 - (download) (as text) (annotate)
Mon Dec 5 18:56:37 2005 UTC (14 years, 2 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.7: +17 -0 lines
Add license words.

#
# 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.
#

$usage = "usage: generate_subsys_tables_for_sprout RelationsDir GenomesF TrustedSubsystems";

(
 ($dir        = shift @ARGV) &&
 ($genomes    = shift @ARGV) && (-s $genomes) &&
 ($subsystems = shift @ARGV) && (-s $subsystems)
)
    || die $usage;

(-d $dir) || mkdir($dir,0777) || die "could not make $dir";

open(SUBSYS,">$dir/Subsystem") || die "could not open $dir/Subsystem";
open(HASSSCELL,">$dir/HasSSCell") || die "could not open $dir/HasSSCell";
open(OCCURSIN,">$dir/OccursInSubsystem") || die "could not open $dir/OccursInSubsystem";
open(OCCURSIN2,">$dir/ParticipatesIn") || die "could not open $dir/ParticipatesIn";
open(SSCELL,">$dir/SSCell") || die "could not open $dir/SSCell";
open(CONTAINSFEATURE,">$dir/ContainsFeature") || die "could not open ContainsFeature";
open(ISROLEOF,">$dir/IsRoleOf") || die "could not open $dir/IsRoleOf";
open(ISGENOMEOF,">$dir/IsGenomeOf") || die "could not open $dir/IsGenomeOf";
open(ROLE,">$dir/Role") || die "could not open $dir/Role";
open(DIAGRAM,">$dir/Diagram") || die "could not open $dir/Diagram";
open(ROLEOCCURSIN,">$dir/RoleOccursIn") || die "could not open $dir/RoleOccursIn";
#open(ROLENAME,">$dir/RoleName") || die "could not open $dir/RoleName";


use FIG;
my $fig = new FIG;

%genomes = map { $_ =~ /^(\d+\.\d+)/; $1 => 1 } `cat $genomes`;

@sub = map { ($_ =~ /(\S.*\S)/) ? $1 : () } `cat $subsystems`;

for ($subN=0; ($subN < @sub); $subN++)
{
    $sub = $sub[$subN];
    print SUBSYS "$sub\n";
    @genomes = map { $_->[0] } grep { $genomes{$_->[0]} } @{$fig->subsystem_genomes($sub)};
    @roles = $fig->subsystem_to_roles($sub);
    
    foreach $genome (@genomes)
    {
        print OCCURSIN2 join("\t",($genome,$sub)),"\n";
    }

    foreach $role (@roles)
    {   
	$roles{$role} = 1;
        print OCCURSIN join("\t",($role,$sub)),"\n";
    }

    for ($genomeN=0; ($genomeN < @genomes); $genomeN++)
    {
        $genome = $genomes[$genomeN];

        for ($roleN=0; ($roleN < @roles); $roleN++)
        {
            $role = $roles[$roleN];
            @pegs = $fig->pegs_in_subsystem_cell($sub,$genome,$role);
            if (@pegs > 0)
            {
                $id = join(":",($subN,$genomeN,$roleN));
                print SSCELL "$id\n";
                print ISROLEOF "$role\t$id\n";
                print ISGENOMEOF "$genome\t$id\n";
		print HASSSCELL "$sub\t$id\n";
                foreach $peg (@pegs)
                {
                    print CONTAINSFEATURE "$id\t$peg\n";
                }
            }
        }
    }
}

foreach $role (sort keys(%roles))
{
    print ROLE "$role\n";
}

foreach $map ($fig->all_maps)
{
    $name = $fig->map_name($map);
    foreach $ec ($fig->map_to_ecs($map))
    {
	$ec_in_map{$ec} = 1;
	print ROLEOCCURSIN "$ec\t$map\n";
    }
    print DIAGRAM "$map\t$name\n";
}

foreach $ec (sort keys(%ec_in_map))
{
    print ROLE "$ec\n";
}

#my $rdbH = $fig->db_handle;
#my $relational_db_response = $rdbH->SQL("SELECT ec,name FROM ec_names");
#if (@$relational_db_response > 0)
#{
#    foreach $x (sort { $a->[0] cmp $b->[0] } @$relational_db_response)
#    {
#	($ec,$name) = @$x;
#	print ROLENAME "$ec\t$ec - $name\n";
#    }
#}
#


MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3