[Bio] / FigKernelPackages / raelib.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/raelib.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.11, Fri Apr 8 20:22:23 2005 UTC revision 1.15, Tue May 24 23:53:24 2005 UTC
# Line 2  Line 2 
2    
3  =pod  =pod
4    
5  =head1  =head1 RAE Library
6    
7   Some routines and things that Rob uses. Please feel free to use at will and incorporate into   Some routines and things that Rob uses. Please feel free to use at will and incorporate into
8   your own code or move them into FIG.pm or elsewhere.   your own code or move them into FIG.pm or elsewhere.
# Line 95  Line 95 
95   my $linecount;   my $linecount;
96   while (<IN>) {   while (<IN>) {
97    $linecount++;    $linecount++;
98    unless ($linecount % 10000) {print STDERR "Correspondence of $linecount lines calculated\n"}    if ($verbose && !($linecount % 10000))  {print STDERR "Parsed $linecount lines\n"}
99    if (/^>/) {print OUT; next}    if (/^>/) {print OUT; next}
100    chomp;    chomp;
101    my $done;    foreach my $peg ($self->swiss_pir_ids($_)) {
   foreach my $peg ($fig->by_alias("uni|$_")) {  
102     print OUT $_, "\t", $peg, "\n";     print OUT $_, "\t", $peg, "\n";
    $done=1;  
103    }    }
   unless ($done) {print OUT $_, "\t\n"}  
104   }   }
105   close IN;   close IN;
106   close OUT;   close OUT;
107   return $linecount;   return $linecount;
108  }  }
109    
110    =head2 uniprotcorrespondence
111    
112    Generate a correspondence table between uniprot knowledge base IDs and FIG ID's.
113    
114    The uniprot KB file is in the form:  UniProtKB_Primary_Accession | UniProtKB_ID | Section | Protein Name
115    
116     This method takes three arguments:
117       from    : uniprotKB file
118       to      : file to write information to
119       verbose : report on progress
120    
121     Returns the number of lines in the pirsinfo file that were read.
122    
123    =cut
124    
125    sub uniprotcorrespondence {
126     my ($self, $from, $to, $verbose)=@_;
127     unless (-e $from) {
128      print STDERR "File $from does not exist as called in $0\n";
129      return 0;
130     }
131     open (IN, $from) || die "Can't open $from";
132     open (OUT, ">$to") || die "Can't write to $to";
133     my $linecount;
134     while (<IN>) {
135      chomp;
136      $linecount++;
137      if ($verbose && !($linecount % 10000))  {print STDERR "Parsed $linecount lines\n"}
138      my @line=split /\s+\|\s+/;
139      foreach my $peg ($self->swiss_pir_ids($line[0])) {
140       print OUT "$_ | $peg\n";
141      }
142     }
143     close IN;
144     close OUT;
145     return $linecount;
146    }
147    
148    
149    
150    =head2 swiss_pir_ids()
151    
152    SwissProt/PIR have lots of ID's that we want to get, usually in this order - uni --> tr --> sp. This routine will map swissprot/pir ids to fig id's.
153    
154    =cut
155    
156    sub swiss_pir_ids {
157     my ($self, $id)=@_;
158     return () unless ($id);
159    
160     my @return=($fig->by_alias("uni|$id"));
161     return @return if ($return[0]);
162    
163     @return=($fig->by_alias("tr|$id"));
164     return @return if ($return[0]);
165    
166     @return=($fig->by_alias("sp|$id"));
167     return @return if ($return[0]);
168    
169     return ();
170    }
171    
172  =head2 ss_by_id  =head2 ss_by_id
173    

Legend:
Removed from v.1.11  
changed lines
  Added in v.1.15

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3