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

Annotation of /FigKernelScripts/gather_genome_info.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : olson 1.1 #
2 :     # Gather all information about the complete prokaryotic genomes.
3 :     #
4 :     # This includes
5 :     #
6 :     # Taxon id
7 :     # accession #s from genbank file
8 :     # project id from genbank file
9 :     # RAST job id if present
10 :     #
11 :     # one line for each contig:
12 :     # contig id, size, md5sum
13 :     #
14 :    
15 :     use strict;
16 :     use FIG;
17 :    
18 :     my $fig = new FIG;
19 :    
20 : olson 1.2 #my @genomes = sort { &FIG::by_genome_id($a, $b) } $fig->genomes();
21 : olson 1.1 #my @genomes = qw(585057.4);
22 : olson 1.2 my $genome_info = $fig->genome_info;
23 : olson 1.1
24 : olson 1.2 foreach my $entry (sort { &FIG::by_genome_id($a->[0], $b->[0]) } @$genome_info)
25 : olson 1.1 {
26 : olson 1.2 my($genome,$name,$szdna,$maindomain,$pegs,$rnas,$complete,$tax) = @$entry;
27 :    
28 : olson 1.1 next unless $fig->is_prokaryotic($genome);
29 : olson 1.2 next unless $complete;
30 : olson 1.1
31 : olson 1.2 my $rrnas = 0;
32 :     my $trnas = 0;
33 :     foreach my $fid ($fig->all_features($genome,'rna'))
34 :     {
35 :     my $func = $fig->function_of($fid);
36 :     if ($func =~ /trna/i) { $trnas++ }
37 :     if ($func =~ /rrna/i) { $rrnas++ }
38 :     }
39 :    
40 : olson 1.1 my $dir = $fig->organism_directory($genome);
41 :    
42 :     #
43 :     # Gather RAST info.
44 :     #
45 :    
46 :     my $rast_job;
47 :     if (open(R, "<", "$dir/RAST"))
48 :     {
49 :     while (<R>)
50 :     {
51 :     if (/RAST job number (\d+)/)
52 :     {
53 :     $rast_job = $1;
54 :     last;
55 :     }
56 :     }
57 :     close(R);
58 :     }
59 :    
60 :     #
61 :     # Genbank info, if available.
62 :     #
63 :     my(@genbank);
64 :     my $cur;
65 :     if (open(G, "<", "$dir/genbank_file"))
66 :     {
67 :     #
68 :     # Crude parse for the data we're interested in.
69 :     #
70 :     while (<G>)
71 :     {
72 :     chomp;
73 :     if (/^LOCUS\s+(.*)/)
74 :     {
75 :     $cur = [];
76 :     push(@$cur, $_);
77 :     push(@genbank, $cur);
78 :     }
79 :     elsif (/^ACCESSION\s+(\S+)/)
80 :     {
81 :     push(@$cur, $_);
82 :     }
83 :     elsif (/^DBLINK\s+Project:(\d+)/)
84 :     {
85 :     push(@$cur, $_);
86 :     }
87 :     }
88 :     close(G);
89 :     }
90 :    
91 : olson 1.2 print join("\t", $genome, $name, $maindomain, $rast_job, $complete, $szdna, $pegs, $rnas, $rrnas, $trnas), "\n";
92 : olson 1.1 my $contigs = $fig->contig_lengths($genome);
93 :     for my $id (sort keys %$contigs)
94 :     {
95 :     my $md5 = $fig->contig_md5sum($genome, $id);
96 :     print join("\t", $id, $contigs->{$id}, $md5), "\n";
97 :     }
98 :     print "///\n";
99 :     for my $g (@genbank)
100 :     {
101 :     print "$_\n" for @$g;
102 :     }
103 :     print "///\n";
104 :     print "//\n";
105 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3