[Bio] / FigKernelScripts / index_nr.pl Repository:
ViewVC logotype

Annotation of /FigKernelScripts/index_nr.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : olson 1.1 use strict;
2 :     use DB_File;
3 :    
4 :     #
5 :     # Create a btree indexed version of the given NR.
6 :     #
7 :    
8 : olson 1.2 my $usage = "index_nr nr-file index-nr-file length-nr-index";
9 : olson 1.1
10 : olson 1.2 @ARGV == 3 or die $usage;
11 : olson 1.1
12 :     my $nr = shift;
13 :     my $inr = shift;
14 : olson 1.2 my $lnr = shift;
15 : olson 1.1
16 :     open(NR, "<$nr") or die "Cannot open NR $nr: $!\n";
17 :    
18 :     my %idx;
19 :    
20 :     my $db = tie %idx, "DB_File", $inr, O_RDWR | O_CREAT, 0666, $DB_BTREE;
21 :     $db or die "Cannot create btree $inr: $!\n";
22 :    
23 : olson 1.2 my %lidx;
24 :    
25 :     my $ldb = tie %lidx, "DB_File", $lnr, O_RDWR | O_CREAT, 0666, $DB_BTREE;
26 :     $ldb or die "Cannot create btree $lnr: $!\n";
27 :    
28 : olson 1.1
29 :     $/ = "\n>";
30 :     while (defined($_ = <NR>))
31 :     {
32 :     chomp;
33 :     if ($_ =~ /^>?(\S+)[^\n]*\n(.*)/s)
34 :     {
35 :     my $id = $1;
36 :     my $seq = $2;
37 :     $seq =~ s/\s//gs;
38 :     $idx{$id} = $seq;
39 : olson 1.2 $lidx{$id} = length($seq);
40 :     }
41 :     if ($. % 100000 == 0)
42 :     {
43 :     print "$.\n";
44 : olson 1.1 }
45 :     }
46 :     close(NR);
47 :     $db->sync();
48 :     untie %idx;
49 : olson 1.2 $ldb->sync();
50 :     untie %lidx;
51 : olson 1.1
52 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3