[Bio] / Babel / bin / build_md52id_for_seed.pl Repository:
ViewVC logotype

Annotation of /Babel/bin/build_md52id_for_seed.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : wilke 1.1 use strict;
2 :     use warnings;
3 :     use vars qw($opt_f $opt_d $opt_t $opt_s);
4 :     use Getopt::Std;
5 :     use Digest::MD5;
6 :     #use Bio::SearchIO;
7 :    
8 :    
9 :    
10 :     getopts('f:d:t:s:');
11 :    
12 :     # opt_t target directory
13 :     # opt_d destination directory
14 :    
15 :     my @files;
16 :     my $destination_dir = $opt_d || "/tmp/";
17 :     my $source = $opt_s || '';
18 :    
19 :     # parameter check
20 :    
21 :     unless (-d $destination_dir){
22 :     print STDERR "No destination directory $destination_dir\n";
23 :     exit;
24 :     }
25 :    
26 :     if ($opt_t and -d $opt_t){
27 :    
28 :     my @list =`find $opt_d -name fasta`;
29 :     foreach my $var (@list){
30 :     chomp $var;
31 :     push @files, $var;
32 :     }
33 :     print STDERR join "\n" , @files , "\n";
34 :    
35 :     }
36 :     elsif($opt_f and -f $opt_f){
37 :    
38 :     push @files , $opt_f;
39 :     }
40 :    
41 :    
42 :    
43 :     # read files
44 :     my $id_hash = {};
45 :     $id_hash = read_fasta( $id_hash , @files);
46 :    
47 :     exit;
48 :    
49 :     print STDERR "Writing md5 to id\n";
50 :     open (TMP , ">/tmp/md52id") or die "Can't open file!\n";
51 :    
52 :     foreach my $md5 (keys %{$id_hash}){
53 :     print TMP $md5."\t";
54 :     print TMP join ";" , @{ $id_hash->{ $md5 } } ;
55 :     print TMP "\n";
56 :     }
57 :    
58 :     close (TMP);
59 :    
60 :     # my $md5 = Digest::MD5::md5_hex( uc $sequence );
61 :    
62 :    
63 :     sub read_fasta{
64 :     my ($hash , $files) = @_;
65 :    
66 :     my $default = $/;
67 :    
68 :    
69 :     open(NR , ">$destination_dir/md5.fasta") or die "Can't open nr\n";
70 :     open(FILE , ">$destination_dir/md52id2func") or die "Can't open md2id2func";
71 :    
72 :    
73 :     open(FUNC , ">$destination_dir/assigned_functions") or die "Can't open file assigned_functions\n";
74 :     open(ORG , ">$destination_dir/org.table") or die "Can't open file org.table\n";
75 :     open(FAS , ">$destination_dir/fasta") or die "Can't open fasta\n";
76 :    
77 :     foreach my $file (@files){
78 :    
79 :     my ($path,$t_source) = $file =~ /([\w\/]+)\/(\w+)\/[\w\.]+$/;
80 :     $source = $t_source unless ($source);
81 :    
82 :     print "Reading $file\n";
83 :     print "$source\n$path\n";
84 :    
85 :     my $ids = {};
86 :    
87 :    
88 :     open(FASTA , $file ) or die "Can't open file $file \n!";
89 :     # set line end
90 :     $/="\n>";
91 :    
92 :     my $count = 0;
93 :     while(my $line = <FASTA>){
94 :    
95 :     my @entries = split "\n" , $line;
96 :     my $end = pop @entries;
97 :     my $id_line = shift @entries;
98 :     my $fasta = join "" , @entries;
99 :    
100 :     next unless ($fasta);
101 :     my $md5 = Digest::MD5::md5_hex( uc $fasta );
102 :    
103 :    
104 :     my @fields = split "\t" , $id_line ;
105 :    
106 :     my ($id , $func) = $fields[0] =~/>{0,1}([^\s]+)\s*(.*)/;
107 :     my ($gi) = $fields[1] =~/\((.*)\)/;
108 :     my ($org) = $fields[2] =~/\((.*)\)/;
109 :     #my ($org) = $fields[2] =~/(.*)/;
110 :     # print join "\t" , ($id , $func , $gi || '' , $org) , "\n";
111 :     unless($org){
112 :     print STDERR "Error , no organism name\n";
113 :     print STDERR $id_line , "\n";
114 :     exit;
115 :     }
116 :     push @{ $hash->{ $md5 } } , $id ;
117 :    
118 :     print FILE "$md5\t$id\t" . $func ."\t". $org ."\t$source\n";
119 :    
120 :     # for build nr
121 :     print FAS ">$id\n$fasta\n";
122 :     print FUNC "$id\t$func\n";
123 :     print ORG "$id\t$org\n";
124 :    
125 :     if ( scalar @{ $hash->{ $md5 } } < 2 ) {
126 :     print NR ">lcl|$md5\n$fasta\n";
127 :     }
128 :     $count++;
129 :     # exit if ($count > 3);
130 :     }
131 :    
132 :    
133 :     close(FASTA);
134 :    
135 :     # set line end back to default
136 :     $/=$default;
137 :     }
138 :    
139 :     close(FILE);
140 :     close(NR);
141 :    
142 :     close(ORG);
143 :     close(FUNC);
144 :     close(FAS);
145 :    
146 :     $/=$default;
147 :     return $hash;
148 :     }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3