[Bio] / FortyEight / rp_index_attributes.pl Repository:
ViewVC logotype

Annotation of /FortyEight/rp_index_attributes.pl

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.4 - (view) (download) (as text)

1 : olson 1.1 #
2 :     # Index the attributes in a job's organism directory.
3 :     #
4 :    
5 :     use Data::Dumper;
6 :     use DB_File;
7 :     use Carp;
8 :     use strict;
9 :     use FIG;
10 :     use FIG_Config;
11 :     use File::Basename;
12 :     use GenomeMeta;
13 :     use Sim;
14 :    
15 : olson 1.4 #
16 :     # allow 2-arg form where we ignore the second, for use in teh attribute generation scripts.
17 :     #
18 :     @ARGV == 1 or @ARGV == 2 or die "Usage: $0 job-dir\n";
19 : olson 1.1
20 :     my $jobdir = shift;
21 :    
22 :     -d $jobdir or die "$0: job dir $jobdir does not exist\n";
23 :    
24 :     my $hostname = `hostname`;
25 :     chomp $hostname;
26 :    
27 :     my $genome = &FIG::file_head("$jobdir/GENOME_ID");
28 :     chomp $genome;
29 :     $genome =~ /^\d+\.\d+/ or die "$0: Cannnot find genome ID for jobdir $jobdir\n";
30 :    
31 :     my $genome_dir = "$jobdir/rp/$genome";
32 :    
33 :     my $attr_key_file = "$genome_dir/attr_key.btree";
34 :     my $attr_id_file = "$genome_dir/attr_id.btree";
35 :    
36 :     unlink($attr_key_file);
37 :     unlink($attr_id_file);
38 :    
39 :     my(%key, %id);
40 :    
41 :     $DB_BTREE->{flags} = R_DUP;
42 :    
43 :     my $key_tie = tie %key, 'DB_File', $attr_key_file, O_RDWR | O_CREAT, 0666, $DB_BTREE;
44 :     $key_tie or die "cannot create $attr_key_file tie: $!";
45 :     my $id_tie = tie %id, 'DB_File', $attr_id_file, O_RDWR | O_CREAT, 0666, $DB_BTREE;
46 :     $id_tie or die "cannot create $attr_id_file tie: $!";
47 :    
48 :     #
49 :     # Process attributes files.
50 :     #
51 :    
52 :     #
53 :     # Evidence codes are a little special.
54 :     #
55 :    
56 :     if (open(E, "<$genome_dir/evidence.codes"))
57 :     {
58 :     while (<E>)
59 :     {
60 :     chomp;
61 :     my($id, $ev) = split(/\t/);
62 :     my $val = join($;, $id, 'evidence_code', $ev);
63 :     $id{$id} = $val;
64 :     $key{evidence_code} = $val;
65 :     }
66 :     }
67 :    
68 : olson 1.2 my @attr_files = <$genome_dir/attributes/*>;
69 : olson 1.1
70 :     for my $af (@attr_files)
71 :     {
72 : olson 1.2 if (open(AF, "<$af"))
73 : olson 1.1 {
74 :     while (<AF>)
75 :     {
76 :     chomp;
77 :     my($id, $attr, $val, $url) = split(/\t/);
78 :     my $str = join($;, $id, $attr, $val, $url);
79 :     $id{$id} = $str;
80 :     $key{$attr} = $str;
81 :     }
82 : olson 1.3 close(AF);
83 : olson 1.1 }
84 :     }
85 :    
86 :     untie($key_tie);
87 :     untie($id_tie);
88 :    
89 :     exit(0);

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3