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

View of /FigKernelScripts/register_genome_with_clearinghouse.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (download) (as text) (annotate)
Thu May 31 19:24:43 2007 UTC (12 years, 5 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, 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, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Missing scripts.

#
# 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 SOAP::Lite;
use strict;
use FIG_Config;

#
# Ensure that this genome is registered with the clearinghouse.
#
# This is a little bit of a hack, but we reinvoke the service call until we
# get back a next_id that is >= our genome sequence number.
#

my $usage = "register_genome_with_clearinghouse genome_id\n";

my $service_url = "http://clearinghouse.theseed.org/Clearinghouse/clearinghouse_services.cgi";

my $proxy = SOAP::Lite-> uri('http://www.soaplite.com/Scripts') -> proxy($service_url);

if (@ARGV != 1)
{
    die $usage;
}

my $genome = shift;

if ($genome !~ /^(\d+)\.(\d+)$/)
{
    die "Invalid genome id '$genome'\n";
}
my($tax, $seq) = ($1, $2);

my $orgdir = "$FIG_Config::organisms/$genome";
-d $orgdir or die "cannot find orgdir $orgdir\n";

#
# See if we do need to register.
#

my $response = $proxy->is_genome_registered($genome);
if ($response->fault)
{
    die "Failed to check registration: ", $response->faultcode, " ", $response->faultstring, "\n";
}

my $is_registered = $response->result;

if ($is_registered)
{
    warn "Genome $genome already registered\n";
}
else
{
    my $new_seq;

    do {
	my $response = $proxy->register_genome($tax);
	
	if ($response->fault)
	{
	    die "Failed to register: ", $response->faultcode, " ", $response->faultstring, "\n";
	}
	
	$new_seq = $response->result;
	print "Register call returns $new_seq\n";
    } while ($new_seq < $seq);
}

#
# Find max feature ids used in this genome, and make sure the feature registrations cover them.
#

for my $fdir (<$orgdir/Features/*>)
{
    my $ftype = $fdir;
    $ftype =~ s,.*/,,;
#    print "$ftype $fdir\n";

    my $max = -1;
    open(TBL, "<$fdir/tbl") or die "error opening $fdir/tbl: $!\n";
    while (<TBL>)
    {
	if (/^fig\|\d+\.\d+\.$ftype\.(\d+)\t/)
	{
	    $max = $1 if $1 > $max;
	}
    }
    close(TBL);

    my $response = $proxy->get_next_feature_id($genome, $ftype);

    if ($response->fault)
    {
	die "Failed to register: ", $response->faultcode, " ", $response->faultstring, "\n";
    }


    my $next = $response->result;
    print "Got max $ftype as $max next=$next\n";

    if ($next < $max + 1)
    {
	my $r2 = $proxy->register_feature($genome, $ftype, $max);
	if ($r2->fault)
	{
	    die "Failed to register: ", $r2->faultcode, " ", $r2->faultstring, "\n";
	}
	my @nextfeat = $r2->result;
	print "Registered featre: @nextfeat\n";
    }
}


MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3