forked from eead-csic-compbio/get_homologues
-
Notifications
You must be signed in to change notification settings - Fork 0
/
_cluster_makeHomolog.pl
executable file
·72 lines (55 loc) · 2.29 KB
/
_cluster_makeHomolog.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
#!/usr/bin/env perl
$|=1;
use strict;
use warnings;
use Getopt::Std;
use File::Basename;
use Benchmark;
use Cwd;
use FindBin '$Bin';
use lib "$Bin/lib";
use lib "$Bin/lib/bioperl-1.5.2_102/";
use marfil_homology;
my (%opts,$INP_dir,$INP_bpofile,$INP_i,$INP_j,$INP_evalue,$INP_pmatch,$INP_pi,$INP_forceredo);
my ($INP_use_short_sequence) = (0);
getopts('hsd:b:i:j:E:S:C:f:', \%opts);
if(($opts{'h'})||(scalar(keys(%opts))==0))
{
print "\nusage: $0 [options]\n\n";
print "-h this message\n";
print "-d directory with input files\n";
print "-b .bpo file generated by sub blast_parse (marfil_homology.pm)\n";
print "-i taxon i\n";
print "-j taxon j\n";
print "-E max E-value\n";
print "-C min \%coverage in BLAST pairwise alignments\n";
print "-S min \%sequence identity in BLAST query/subj pairs\n";
print "-f force recalculation, otherwise might recover previous results\n";
print "-s use short sequence for coverage calculations\n\n";
exit(0);
}
if(defined($opts{'d'})){ $INP_dir = $opts{'d'}; }
else{ die "# EXIT : need a -d directory\n"; }
if(defined($opts{'b'})){ $INP_bpofile = $opts{'b'}; }
else{ die "# EXIT : need a -b bpofile as input\n"; }
if(defined($opts{'i'})){ $INP_i = $opts{'i'}; }
else{ die "# EXIT : need parameter -i\n"; }
if(defined($opts{'j'})){ $INP_j = $opts{'j'}; }
else{ die "# EXIT : need parameter -j\n"; }
if(defined($opts{'E'})){ $INP_evalue = $opts{'E'}; }
else{ die "# EXIT : need parameter -E\n"; }
if(defined($opts{'C'})){ $INP_pmatch = $opts{'C'}; }
else{ die "# EXIT : need parameter -C\n"; }
if(defined($opts{'S'})){ $INP_pi = $opts{'S'}; }
else{ die "# EXIT : need parameter -S\n"; }
if(defined($opts{'f'})){ $INP_forceredo = $opts{'f'}; }
else{ die "# EXIT : need parameter -f\n"; }
if(defined($opts{'s'})){ $INP_use_short_sequence = 1; }
#else{ die "# EXIT : need parameter -s\n"; }
##########################################################################
## 1) create required data structures and get right file/dir names
constructDirectory($INP_dir);
$bpo_file = $INP_bpofile;
construct_taxa_indexes($bpo_file);
# %gindex y %gindex2 are created here, while calling construct_indexes($bpo_file,($INP_taxon=>1))
my ($rhash_homologues) = makeHomolog(1,$INP_i,$INP_j,$INP_evalue,$INP_pi,$INP_pmatch,$INP_forceredo,$INP_use_short_sequence);