[Bio] / Sprout / ExportAttributes.pl Repository:
ViewVC logotype

View of /Sprout/ExportAttributes.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (download) (as text) (annotate)
Tue Feb 5 05:47:32 2008 UTC (11 years ago) by parrello
Branch: MAIN
CVS Tags: mgrast_dev_08112011, mgrast_dev_08022011, rast_rel_2014_0912, rast_rel_2008_06_18, rast_rel_2008_06_16, 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, rast_rel_2009_05_18, 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, rast_rel_2009_03_26, mgrast_dev_10262011, rast_rel_2008_11_24, rast_rel_2008_08_07, HEAD
Changes since 1.1: +0 -2 lines
Removed obsolete use clauses.

#!/usr/bin/perl -w

=head1 ExportAttributes

Export attributes to a tab-delimited file.

This method will export attribute data for a single entity type. The
three parameters are the entity type, an optional entity instance ID,
and an optional key name.

SQL-style patterns can be specified for the key name or instance ID. For
example,

    ExportAttributes Feature "fig|100226.1%" "virulen%"

will get all virulence-related attributes for features of the C<100226.1>
genome. Omitting arguments causes them to be treated like pure wildcards.
For example,

    ExportAttributes Feature

would get all attributes for all features.

The attributes will be exported to the standard output in tab-delimited format.

The currently-supported command-line options are as follows.

=over 4

=item user

Name suffix to be used for log files. If omitted, the PID is used.

=item trace

Numeric trace level. A higher trace level causes more messages to appear. The
default trace level is 2. Tracing will be to a C<trace>I<User>C<.log> file
in the FIG temporary directory, where I<User> is the value of the B<user>
option above. A bare number will send trace to the standard output as well as
the trace log file. To prevent this, use a minus sign. Thus, C<3> will
trace into the standard output, but C<3-> will only go to the log file.
Specify C<E> to use emergency tracing.

=item sql

If specified, turns on tracing of SQL activity.

=item background

Save the standard and error output to files. The files will be created
in the FIG temporary directory and will be named C<err>I<User>C<.log> and
C<out>I<User>C<.log>, respectively, where I<User> is the value of the
B<user> option above.

=item h

Display this command's parameters and options.

=item phone

Phone number to message when the script is complete.

=back

=cut

use strict;
use Tracer;
use Cwd;
use File::Copy;
use File::Path;
use FIG;

# Get the command-line options and parameters.
my ($options, @parameters) = StandardSetup([qw(CustomAttributes RemoteCustomAttributes ERDB) ],
                                           {
                                              trace => ["2-", "trace level"],
                                              phone => ["", "phone number (international format) to call when load finishes"],
                                           },
                                           "<entityName> <id> <keyName>",
                                           @ARGV);
# Set a variable to contain return type information.
my $rtype;
# Insure we catch errors.
eval {
    # Insure we have an entity name.
    if (! $parameters[0]) {
        Confess("No entity name specified. (NOTE: the most common entity names are \"Feature\" and \"Genome\".)");
    } else {
        Trace("Connecting to FIG.") if T(2);
        my $fig = FIG->new();
        # Compute the entity pattern.
        my $pattern = [$parameters[0]];
        if ($parameters[1]) {
            push @{$pattern}, $parameters[1];
        }
        # Retrieve the attributes.
        Trace("Calling for attributes.") if T(2);
        my @attrList = $fig->get_attributes($pattern, $parameters[2]);
        Trace(scalar(@attrList) . " attribute values returned.") if T(2);
        for my $row (@attrList) {
            print join("\t", @{$row}) . "\n";
        }
        Trace("Export complete.") if T(2);
    }
};
if ($@) {
    Trace("Script failed with error: $@") if T(0);
    $rtype = "error";
} else {
    Trace("Script complete.") if T(2);
    $rtype = "no error";
}
if ($options->{phone}) {
    my $msgID = Tracer::SendSMS($options->{phone}, "ExportAttributes terminated with $rtype.");
    if ($msgID) {
        Trace("Phone message sent with ID $msgID.") if T(2);
    } else {
        Trace("Phone message not sent.") if T(2);
    }
}



1;

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3