/usr/bin/bp_bioflat_index is in bioperl 1.6.924-1.
This file is owned by root:root, with mode 0o755.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 | #!/usr/bin/perl
eval 'exec /usr/bin/perl -S $0 ${1+"$@"}'
if 0; # not running under some shell
=head1 NAME
bp_bioflat_index.pl - index sequence files using Bio::DB::Flat
=head1 DESCRIPTION
Create or update a biological sequence database indexed with the
Bio::DB::Flat indexing scheme. The arguments are a list of flat files
containing the sequence information to be indexed.
=head1 USAGE
bp_bioflat_index.pl <options> file1 file2 file3...
Options:
--create Create or reinitialize the index. If not specified,
the index must already exist.
--format <format> The format of the sequence files. Must be one
of "genbank", "swissprot", "embl" or "fasta".
--location <path> Path to the directory in which the index files
are stored.
--dbname <name> The symbolic name of the database to be created.
--indextype <type> Type of index to create. Either "bdb" or "flat".
"binarysearch" is the same as "flat".
Options can be abbreviated. For example, use -i for --indextype.
The following environment variables will be used as defaults if the
corresponding options are not provided:
OBDA_FORMAT format of sequence file
OBDA_LOCATION path to directory in which index files are stored
OBDA_DBNAME name of database
OBDA_INDEX type of index to create
=cut
use strict;
use warnings;
use Bio::Root::Root;
use Bio::Root::IO;
use Bio::DB::Flat;
use Getopt::Long;
use File::Path qw(mkpath rmtree);
my ($CREATE,$FORMAT,$LOCATION,$DBNAME,$INDEXTYPE);
GetOptions( 'create' => \$CREATE,
'format:s' => \$FORMAT,
'location:s' => \$LOCATION,
'dbname:s' => \$DBNAME,
'indextype:s' => \$INDEXTYPE );
$FORMAT = $ENV{OBDA_FORMAT} unless defined $FORMAT;
$LOCATION = $ENV{OBDA_LOCATION} unless defined $LOCATION;
$DBNAME = $ENV{OBDA_DBNAME} unless defined $DBNAME;
$INDEXTYPE = $ENV{OBDA_INDEXTYPE} unless defined $INDEXTYPE;
my $root = 'Bio::Root::Root';
my $io = 'Bio::Root::IO';
# confirm that database directory is there
defined $LOCATION or
$root->throw("please provide a base directory with the --location option");
-d $LOCATION or
$root->throw("$LOCATION is not a valid directory; use --create to create a new index");
defined $DBNAME or
$root->throw("please provide a database name with the --dbname option");
defined $FORMAT or
$root->throw("please specify the format for the input files with the --format option");
unless (defined $INDEXTYPE) {
$INDEXTYPE = 'flat';
$root->warn('setting index type to "flat", use the --indextype option to override');
}
# Confirm that database is there and that --create flag is sensible.
my $path = $io->catfile($LOCATION,$DBNAME,'config.dat');
if (-e $path) {
if ($CREATE) {
$root->warn("existing index detected; deleting.");
rmtree($io->catfile($LOCATION,$DBNAME),1,1);
} else {
$root->warn("existing index detected; ignoring --indextype and --format options.");
undef $INDEXTYPE;
}
}
elsif (!$CREATE) {
$root->throw("Cannot find database config file at location $path; use --create to create a new index");
}
# open for writing/updating
my $db = Bio::DB::Flat->new(-directory => $LOCATION,
-dbname => $DBNAME,
$INDEXTYPE ? (
-index => $INDEXTYPE
)
: (),
-write_flag => 1,
-format => $FORMAT) or
$root->throw("can't create Bio::DB::Flat object");
my $entries = $db->build_index(@ARGV);
print STDERR "(Re)indexed $entries entries.\n ";
__END__
|