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

Annotation of /FigKernelScripts/get_id_mapping_for_list_of_IDs.pl

Parent Directory Parent Directory | Revision Log Revision Log


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

1 : wilke 1.1 #use FIG;
2 :     use strict;
3 :     use warnings;
4 :    
5 :     use vars qw( $opt_d $opt_f $opt_h $opt_o);
6 :     use Getopt::Std;
7 :    
8 :     use AnnoClearinghouse;
9 :     use FIG;
10 :    
11 :     getopts('f:o:');
12 :    
13 :     my $file = $opt_f || "";
14 :     my $output = $opt_o || "fig";
15 :    
16 :     my $usage = "get_id_mapping_for_list_of_IDs -f FILE -o [all|fig]\n";
17 :    
18 :     unless (-f $file){
19 :     print STDERR "No file $file!\n";
20 :     print $usage;
21 :     #exit;
22 :     }
23 :    
24 :     my $fig = new FIG;
25 :     #my $aclh = AnnoClearinghouse->new( "/vol/clearinghouse/v12" , "/vol/clearinghouse/contrib" , 1);
26 :    
27 :     my $ext_ids = {} ;
28 :     my $with_type_info = 0;
29 :    
30 :     open (FILE , $file) or die "Can't open $file\n";
31 :    
32 :     while (my $line = <FILE>){
33 :     chomp $line;
34 :     my ($id,@rest) = split "\t" , $line;
35 :     # print $id , "\n";
36 :     if ($id){
37 :     $ext_ids->{$id} = { seq => 0,
38 :     org => 0,
39 :     };
40 :     }
41 :     }
42 :     close(FILE);
43 :    
44 :     #$ext_ids->{"fig|345073.6.peg.2186 "} = { seq => 0,
45 :     # org => 0,
46 :     # };
47 :    
48 :     foreach my $ext_id (keys %$ext_ids){
49 :     my @id_list = $fig->get_corresponding_ids($ext_id, $with_type_info);
50 :     my @ids_seq;
51 :    
52 :     foreach my $line ( $fig->mapped_prot_ids( $ext_id ) ){
53 :    
54 :     push @ids_seq , $line->[0];
55 :     }
56 :    
57 :     # print "ACH:\n";
58 :     # foreach my $line ( $aclh->lookup_id( $ext_id) ){
59 :     # foreach my $entry (@$line){
60 :     # print scalar @$entry , "\n";
61 :     # print join "\t" , @$entry , "\n" if (scalar @$entry);
62 :     # }
63 :     # }
64 :    
65 :    
66 :    
67 :     $ext_ids->{ $ext_id }->{ org } = \@id_list;
68 :     $ext_ids->{ $ext_id }->{ seq } = \@ids_seq;
69 :     }
70 :    
71 :    
72 :     if ($output eq "all"){
73 :     print "Query ID\tID Correspondence by Organism\tID Correspondence by Sequence\n";
74 :     foreach my $ext_id (keys %$ext_ids){
75 :     my @fig_org = ();
76 :     print $ext_id , "\t";
77 :     print join ";", @{ $ext_ids->{ $ext_id }->{ org } } , "\t";
78 :     print join ";", @{ $ext_ids->{ $ext_id }->{ seq } } , "\n";
79 :     }
80 :     }
81 :     else{
82 :     print_figs( $ext_ids );
83 :     }
84 :    
85 :    
86 :     sub print_figs{
87 :     my ($ext_ids) = @_;
88 :     print "Query ID\tID Correspondence\tSequence Correspondence\n";
89 :     foreach my $ext_id (keys %$ext_ids){
90 :     print $ext_id , "\t";
91 :     my @org;
92 :     my @seq;
93 :    
94 :     map { push @org , $1 if ($_=~/(fig\|[^;\s]+)/ ); } @{ $ext_ids->{ $ext_id }->{ org } };
95 :     map { push @seq , $1 if ($_=~/(fig\|[^;\s]+)/ ); } @{ $ext_ids->{ $ext_id }->{ seq } };
96 :    
97 :     if ( @{ $ext_ids->{ $ext_id }->{ org } } ){
98 :    
99 :     foreach my $id ( @{ $ext_ids->{ $ext_id }->{ org } } ){
100 :     print $id , "\t" if ($id =~ /fig/);
101 :     }
102 :     }
103 :     else{
104 :     print "\t";
105 :     }
106 :    
107 :     print join ";", @seq , "\n";
108 :    
109 :    
110 :    
111 :     }
112 :    
113 :     }
114 :    
115 :     # sub get_synonyms_for_complete_genome{
116 :     # my ($genome) =@_;
117 :    
118 :     # $genome=~s/fig\|//g; # strip any prefix fig| part of the ID as the downstream methods choke on them
119 :    
120 :     # # init clearinghouse (this really should be done in config not in code!)
121 :    
122 :    
123 :     # # the version number needs to be split from the genome ID
124 :     # $genome =~ s/\.\d+//g;
125 :    
126 :     # print "retrieving from ACH for $genome \n" if defined $verbose;
127 :    
128 :     # foreach my $entry ($aclh->get_synonyms_for_prefix($genome) ){
129 :     # #my ($fid,$ref)=(@line=split (/:/, $entry))[4,3];
130 :     # my @line=split (/:/, $entry);
131 :     # my ($fid,$ref)=@line[4,3];
132 :    
133 :     # next if ($ref eq $fid ) ; # exclude reference to $fid itself
134 :     # my $list=$Synonyms{$fid};
135 :     # $list.=",".$ref;
136 :     # $Synonyms{$fid}=$list;
137 :    
138 :     # # print "ID: $fid:: ".$Synonyms{$fid}."\n" if defined $verbose;
139 :     # }
140 :     # }

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3