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 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137
|
#!/usr/bin/env perl
# Copyright © 2011, Battelle National Biodefense Institute (BNBI);
# all rights reserved. Authored by: Brian Ondov, Nicholas Bergman, and
# Adam Phillippy
#
# See the LICENSE.txt file included with this software for license information.
use strict;
use Cwd 'abs_path';
use Getopt::Long;
my $path = '/usr/local';
my $taxonomyDir;
my $scriptPath;
my $help;
GetOptions(
'prefix=s' => \$path,
'taxonomy=s' => \$taxonomyDir,
'scriptpath=s' => \$scriptPath,
'help' => \$help
);
if ( $help )
{
print "./install.pl [-prefix /path/to/install] [-taxonomy /path/to/taxonomy] [-scriptpath /path/to/sripts]\n";
exit;
}
$path = abs_path($path);
if ( defined $taxonomyDir )
{
$taxonomyDir = abs_path($taxonomyDir);
}
if ( ! defined $scriptPath )
{
$scriptPath = abs_path('scripts');
}
createDir($path);
createDir("$path/bin");
print "Creating links...\n";
foreach my $script
(qw(
ClassifyBLAST
GetContigMagnitudes
GetLCA
GetLibPath
GetTaxIDFromAcc
GetTaxInfo
ImportBLAST
ImportDiskUsage
ImportEC
ImportFCP
ImportGalaxy
ImportKrona
ImportMETAREP-blast
ImportMETAREP-EC
ImportMGRAST
ImportPhymmBL
ImportRDP
ImportRDPComparison
ImportTaxonomy
ImportText
ImportXML
))
{
if ( system('ln', '-sf', "$scriptPath/$script.pl", "$path/bin/kt$script") )
{
linkFail("$path/bin");
}
}
if ( defined $taxonomyDir )
{
if ( ! -e $taxonomyDir )
{
ktDie("$taxonomyDir does not exist.");
}
if ( -e 'taxonomy')
{
system('rm -r taxonomy');
}
print "Linking taxonomy to $taxonomyDir...\n";
system('ln -s -f -F ' . $taxonomyDir . ' taxonomy');
}
print '
Installation complete.
Run ./updateTaxonomy.sh to use scripts that rely on NCBI taxonomy:
ktClassifyBLAST
ktGetLCA
ktGetTaxInfo
ktImportBLAST
ktImportTaxonomy
ktImportMETAREP-BLAST
Run ./updateAccessions.sh to use scripts that get taxonomy IDs from accessions:
ktClassifyBLAST
ktGetTaxIDFromAcc
ktImportBLAST
';
sub createDir
{
my ($dir) = @_;
if ( ! -e $dir )
{
mkdir $dir or ktDie("$dir does not exist and couldn't create");
}
}
sub ktDie
{
my ($error) = @_;
print "\nERROR: $error\n\n";
exit 1;
}
sub linkFail
{
my ($path) = @_;
ktDie("Couldn't link files to $path. Do you have permission?\n(Use \"--prefix <path>\" to change install location)");
exit 1;
}
|