[Bio] / FigWebServices / ss_export.cgi Repository:
ViewVC logotype

Diff of /FigWebServices/ss_export.cgi

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

revision 1.1, Wed May 26 22:32:15 2004 UTC revision 1.8, Mon Dec 5 19:12:12 2005 UTC
# Line 1  Line 1 
1    #
2    # Copyright (c) 2003-2006 University of Chicago and Fellowship
3    # for Interpretations of Genomes. All Rights Reserved.
4    #
5    # This file is part of the SEED Toolkit.
6    #
7    # The SEED Toolkit is free software. You can redistribute
8    # it and/or modify it under the terms of the SEED Toolkit
9    # Public License.
10    #
11    # You should have received a copy of the SEED Toolkit Public License
12    # along with this program; if not write to the University of Chicago
13    # at info@ci.uchicago.edu or the Fellowship for Interpretation of
14    # Genomes at veronika@thefig.info or download a copy from
15    # http://www.theseed.org/LICENSE.TXT.
16    #
17    
18  use FIG;  use FIG;
19  use CGI;  use CGI;
20  use HTML;  use HTML;
# Line 54  Line 71 
71      chdir($tmp);      chdir($tmp);
72    
73      #      #
74        # Write a README with the mapping from genome and role index to name.
75        #
76    
77        open(my $rfh, ">README");
78    
79        print $rfh "Roles\n";
80        for my $role (@roles)
81        {
82            my $name = $sub->get_role($role);
83            my $abbr = $sub->get_role_abbr($role);
84    
85            print $rfh "$role\t$abbr\t$name\n";
86        }
87    
88        print $rfh "\n";
89    
90        print $rfh "Genomes\n";
91    
92        for my $g (@genomes)
93        {
94            my $gname = $sub->get_genome($g);
95            my $gs = $fig->genus_species($gname);
96    
97            print $rfh "$g\t$gname\t$gs\n";
98        }
99        close($rfh);
100    
101        #
102      # Write the role exports.      # Write the role exports.
103      #      #
104    
105      for my $role (@roles)      for my $role (@roles)
106      {      {
107          my $file = "role_$role.fasta";          my $file = "role_$role.dna.fasta";
108            my $protfile = "role_$role.prot.fasta";
109          open(my $fh, ">$file");          open(my $fh, ">$file");
110            open(my $protfh, ">$protfile");
111          for my $g (@genomes)          for my $g (@genomes)
112          {          {
113              my $gname = $sub->get_genome($g);              my $gname = $sub->get_genome($g);
# Line 69  Line 116 
116              {              {
117                  for my $peg (@$entry)                  for my $peg (@$entry)
118                  {                  {
119                        my $pegname = $peg;
120                        $pegname =~ s/^fig\|//;
121                        $pegname =~ s/\.peg\././;
122    
123                      my @location = $fig->feature_location($peg);                      my @location = $fig->feature_location($peg);
124                      if (@location > 0)                      if (@location > 0)
125                      {                      {
126                          my $seq = $fig->dna_seq($gname, @location);                          my $seq = $fig->dna_seq($gname, @location);
127                          &FIG::display_id_and_seq($peg, \$seq, $fh);                          if ($seq ne "")
128                            {
129                                &FIG::display_id_and_seq($pegname, \$seq, $fh);
130                            }
131                        }
132                        my $seq = $fig->get_translation($peg);
133                        if ($seq ne "")
134                        {
135                            &FIG::display_id_and_seq($pegname, \$seq, $protfh);
136                      }                      }
137                  }                  }
138              }              }
139          }          }
140          close($fh);          close($fh);
141            close($protfh);
142      }      }
143    
144      #      #
# Line 86  Line 146 
146      # all-sequences file.      # all-sequences file.
147      #      #
148    
149      open(my $all_fh, ">all.fasta");      open(my $all_fh, ">all.dna.fasta");
150        open(my $allprot_fh, ">all.prot.fasta");
151        my $catfile = "all.prot.cat.fasta";
152        open(my $catfh, ">$catfile");
153    
154      for my $g (@genomes)      for my $g (@genomes)
155      {      {
156          my $gname = $sub->get_genome($g);          my $gname = $sub->get_genome($g);
157          my $file = "genome_$g.fasta";          my $file = "genome_$g.dna.fasta";
158            my $protfile = "genome_$g.prot.fasta";
159    
160          open(my $fh, ">$file");          open(my $fh, ">$file");
161            open(my $protfh, ">$protfile");
162            print $catfh ">$gname/" . $fig->genus_species($gname) . "\n";
163          for my $role (@roles)          for my $role (@roles)
164          {          {
165              my $entry = $sub->get_cell($g, $role);              my $entry = $sub->get_cell($g, $role);
# Line 101  Line 167 
167              {              {
168                  for my $peg (@$entry)                  for my $peg (@$entry)
169                  {                  {
170                        my $pegname = $peg;
171                        $pegname =~ s/^fig\|//;
172                        $pegname =~ s/\.peg\././;
173                      my @location = $fig->feature_location($peg);                      my @location = $fig->feature_location($peg);
174                      if (@location > 0)                      if (@location > 0)
175                      {                      {
176                          my $seq = $fig->dna_seq($gname, @location);                          my $seq = $fig->dna_seq($gname, @location);
177                          &FIG::display_id_and_seq($peg, \$seq, $fh);                          if ($seq ne "")
178                          &FIG::display_id_and_seq($peg, \$seq, $all_fh);                          {
179                                &FIG::display_id_and_seq($pegname, \$seq, $fh);
180                                &FIG::display_id_and_seq($pegname, \$seq, $all_fh);
181                            }
182                        }
183                        my $seq = $fig->get_translation($peg);
184                        if ($seq ne "")
185                        {
186                            &FIG::display_id_and_seq($pegname, \$seq, $protfh);
187                            &FIG::display_id_and_seq($pegname, \$seq, $allprot_fh);
188                            &FIG::display_seq(\$seq, $catfh);
189                      }                      }
190                  }                  }
191              }              }
192          }          }
193          close($fh);          close($fh);
194            close($protfh);
195      }      }
196        close($catfh);
197      close($all_fh);      close($all_fh);
198        close($allprot_fh);
199    
200        my $outname = "$subsystem.$$.tar.gz";
201        $outname =~ s/[^\w.-]/_/g;
202    
203        system("tar czf ../$outname .");
204        my $size = (stat("../$outname"))[7];
205    
 #    print "Content-Type: application/x-tar\n";  
     print "Content-Disposition:attachment;filename=$subsystem.tar.gz\n";  
206      print "Content-Type: application/octet-stream\n";      print "Content-Type: application/octet-stream\n";
207      #    print "Content-Encoding: x-gzip\n";      print "Content-Length: $size\n";
208        print "Content-Disposition:attachment;filename=$outname\n";
209      print "\n";      print "\n";
210      system("tar czf - .");  
211        my $buf;
212        open(my $myout, "<../$outname");
213        while (read($myout, $buf, 4096))
214        {
215            print $buf;
216        }
217        close($myout);
218    
219      chdir("..");      chdir("..");
220      system("rm -r $tmp");      system("rm -r $tmp $outname");
221    
222      exit;      exit;
223  }  }

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.8

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3