-
Notifications
You must be signed in to change notification settings - Fork 0
/
setup_ID16S.pl
executable file
·101 lines (80 loc) · 3.07 KB
/
setup_ID16S.pl
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
#!/usr/bin/env perl
## Pombert Lab 2022
my $name = 'setup_ID16S.pl';
my $version = '0.2b';
my $updated = '2024-05-28';
use strict;
use warnings;
use Getopt::Long qw(GetOptions);
use File::Basename;
use File::Path qw(make_path);
use Cwd qw(abs_path);
#########################################################################
### Command line options
#########################################################################
my $usage = <<"EXIT";
NAME ${name}
VERSION ${version}
UPDATED ${updated}
SYNOPSIS Creates and stores ID16S environment variables to a configuration file.
USAGE ${name} \\
-c ID16S.sh \\
-d ./ID16S_DB
OPTIONS
-c (--config) Configuration file [Default: ~/.bashrc]
-d (--db_dir) Desired directory to download NCBI databases [Default: ./ID16S_DB]
-i (--inst_dir) ID16S installation directory [Default: ./]
-v (--version) Show script version
EXIT
unless (@ARGV){
print "\n$usage\n";
exit(0);
};
my ($script, $path) = fileparse($0);
my $db_path = './ID16S_DB';
my $config_file = '~/.bashrc';
my $sc_version;
GetOptions(
'i|inst_dir=s' => \$path,
'd|db_dir=s' => \$db_path,
'c|config=s' => \$config_file,
'v|version' => \$sc_version
);
#########################################################################
### Version
#########################################################################
if ($sc_version){
print "\n";
print "Script: $name\n";
print "Version: $version\n";
print "Updated: $updated\n\n";
exit(0);
}
#########################################################################
### Output directory
#########################################################################
unless (-d $db_path){
make_path($db_path,{mode=>0755}) or die("Unable to create database directory $db_path: $!\n");
}
#########################################################################
### ID16S_HOME and ID16S_DB variables
#########################################################################
open CONFIG, ">>", $config_file or die("Unable to access to configuration file $config_file: $!\n");
print CONFIG "\n".'# Adding ID16S home and database variables'."\n";
print CONFIG 'export ID16S_HOME='.abs_path($path)."\n";
print CONFIG 'export ID16S_DB='.abs_path($db_path)."\n";
print CONFIG "\n";
#########################################################################
### BLASTDB update with TaxDB
#########################################################################
print CONFIG '# Adding NCBI TaxDB to BLASTDB variable'."\n";
print CONFIG 'export BLASTDB=$BLASTDB:'.abs_path($db_path).'/TaxDB:'.abs_path($db_path).'/NCBI_16S'."\n\n";
#########################################################################
### Adding to PATH variable
#########################################################################
print CONFIG '# Adding ID16S to PATH variable'."\n";
print CONFIG 'PATH=$PATH:$ID16S_HOME'."\n";
print CONFIG 'PATH=$PATH:$ID16S_HOME/Core_scripts'."\n";
print CONFIG 'PATH=$PATH:$ID16S_HOME/Normalization_scripts'."\n";
print CONFIG 'export PATH'."\n";
close CONFIG;