[Bio] / KBaseTutorials / index_dbd_terms.pl Repository:
ViewVC logotype

Annotation of /KBaseTutorials/index_dbd_terms.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : disz 1.1 use strict;
2 :     use Data::Dumper;
3 :     use Getopt::Long;
4 :     use XML::LibXML;
5 :    
6 :    
7 :     #/home/parrello/CdmiData/Published/KSaplingDBD.xml
8 :    
9 :     @ARGV == 2 or die "Usage: $0 DBD-xml-file destination_dir < terms\n";
10 :    
11 :     my $in_file = shift;
12 :     my $dest = shift;
13 :     my %terms;
14 :     my $doc = XML::LibXML->new->parse_file($in_file);
15 :     $doc or die "cannot parse $in_file\n";
16 :    
17 :     while (<>) {
18 :     chomp;
19 :     $terms{$_} = 1;
20 :     }
21 :     for my $r ($doc->findnodes('//Relationships/Relationship'))
22 :     {
23 :     my $n = $r->getAttribute("name");
24 :     $terms{$n} = 1;
25 :     }
26 :    
27 :     for my $e ($doc->findnodes('//Entities/Entity'))
28 :     {
29 :     my $n = $e->getAttribute("name");
30 :     $terms{$n} = 1;
31 :     }
32 :    
33 :     my $term_ctr = 1;
34 :    
35 :    
36 :     open(ORDER, "<", "ORDER") or die "cannot open ORDER: $!";
37 :    
38 :     my @dirs = <ORDER>;
39 :     chomp @dirs;
40 :     close(ORDER);
41 :    
42 :     my @files;
43 :     for my $dir (@dirs) {
44 :     unless(-d "$dest/$dir"){
45 :     mkdir "$dest/$dir" or die "cannot make dir $dir: $!";
46 :     }
47 :    
48 :     @files = find_files($dir);
49 :    
50 :     for my $html (@files) {
51 :     my $h2 = "Here";
52 :     my $title = get_title("$dir/$html");
53 :     open(F, "<", "$dir/$html") or die "Cannot open $html: $!";
54 :     open (T, ">", "$dest/$dir/$html") or die "cannot open $html: $!";
55 :     while (<F>) {
56 :     my $x = $_;
57 :     if ($x =~ m,<h2>(.*)</h2>,) {
58 :     $h2 = $1;
59 :     }
60 :     $x =~ s!(\w+)!if ($terms{$1}) {my $term = $1;
61 :     my $v= $term_ctr++;
62 :     print "$title\t$dir/$html\t$h2\t$term\t$term$v\n";
63 :     "<a name=\"$term".$v."\"> $term</a> "
64 :     } else {$1}!eg;
65 :     print T $x;
66 :     }
67 :     }
68 :     }
69 :    
70 :    
71 :    
72 :    
73 :     sub find_files {
74 :     # get titles too from publish_site
75 :     my($dir) = @_;
76 :     my @files;
77 :     if (open(O, "<", "$dir/ORDER"))
78 :     {
79 :     @files = <O>;
80 :     chomp @files;
81 :     close(O);
82 :     }
83 :     else
84 :     {
85 :     opendir(D, $dir) or die "cannot opendir $dir: $!";
86 :     @files = sort { $a cmp $b } grep { /\.html$/ && -f "$dir/$_" } readdir(D);
87 :     closedir(D);
88 :     }
89 :     return @files;
90 :     }
91 :     sub get_title
92 :     {
93 :     my($file) = @_;
94 :     open(F, "<", $file) or die "Cannot read $file: $!";
95 :     my $title;
96 :     while (<F>)
97 :     {
98 :     if (/<h1>(.*?)</)
99 :     {
100 :     $title = $1;
101 :     last;
102 :     }
103 :     }
104 :     close(F);
105 :     return $title;
106 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3