/usr/bin/bp_bioflat_index is in bioperl 1.6.923-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__
 |