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

View of /FigKernelScripts/svr_close_genomes.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.1 - (download) (as text) (annotate)
Wed Jul 28 16:21:29 2010 UTC (9 years, 10 months ago) by parrello
Branch: MAIN
CVS Tags: mgrast_dev_08112011, mgrast_dev_08022011, myrast_rel40, mgrast_dev_05262011, mgrast_dev_04082011, rast_rel_2010_0928, mgrast_version_3_2, mgrast_dev_12152011, mgrast_dev_06072011, mgrast_dev_02212011, rast_rel_2010_1206, mgrast_release_3_0, mgrast_dev_03252011, rast_rel_2011_0119, 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, mgrast_dev_04012011, rast_rel_2010_0827, myrast_33, rast_rel_2011_0928, mgrast_dev_04052011, mgrast_dev_02222011, mgrast_dev_10262011
More server script stuff. Thought I'd already installed these last week...

use strict;

use Getopt::Long;
use SeedEnv;

#
# This is a SAS Component
#


=head1 svr_close_genomes

List the IDs of the genomes that are functionally close to the input genomes.

    svr_close_genomes < genomes.tbl > close_genomes.tbl

This script takes as input a tab-delimited file with genome IDs at the end of each
line. For each genome ID, multiple output lines are produced containing the ID and
score of each functionally close genome found.

This is a pipe command: the input is taken from the standard input and the output
is to the standard output.

=head2 Command-Line Options

=over 4

=item url

The URL for the Sapling server, if it is to be different from the default.

=item c

Column index. If specified, indicates that the input IDs should be taken from the
indicated column instead of the last column. The first column is column 1.

=back

=cut

# Parse the command-line options.
my $url = '';
my $column = '';
my $opted =  GetOptions('url=s' => \$url, 'c=i' => \$column);
if (! $opted) {
    print "usage: svr_close_genomes [--url=http://...] [--c=N] <input >output\n";
} else {
    # Get the server object.
    my $sapServer = SAPserver->new(url => $url);
    # The main loop processes chunks of input.
    while (my @tuples = ScriptThing::GetBatch(\*STDIN, 2, $column)) {
        # Ask the server for results.
        my $document = $sapServer->close_genomes(-ids => [map { $_->[0] } @tuples]);
        # Loop through the IDs, producing output.
        for my $tuple (@tuples) {
            my ($id, $line) = @$tuple;
            # Get this genome's data.
            my $genomeData = $document->{$id};
            # Did we get something?
            if (! $genomeData) {
                # No. Write an error notification.
                print STDERR "None found: $id\n";
            } else {
                # Yes. Loop through the genomes found.
                for my $pair (@$genomeData) {
                    # Get the genome ID and score.
                    my ($genomeID, $score) = @$pair;
                    print join("\t", $line, $genomeID, $score) . "\n";
                }
            }
        }
    }
}

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3