added a comment section..
[sgn.git] / cgi-bin / phenome / pop_download.pl
blob72c6826810ff9ef8e317d655a60482e9307bb90d
1 #!/usr/bin/perl -wT
3 =head1 DESCRIPTION
4 A small script for downloading population
5 phenotype raw data in tab delimited format.
7 =head1 AUTHOR(S)
9 Isaak Y Tecle (iyt2@cornell.edu)
11 =cut
13 use strict;
15 use CXGN::DB::Connection;
16 use CXGN::Phenome::Population;
17 use CXGN::Phenome::Individual;
18 use CXGN::Scrap;
20 my $scrap = CXGN::Scrap->new();
21 my $dbh = CXGN::DB::Connection->new();
23 my $population_id = $scrap->get_encoded_arguments("population_id");
25 my $pop = CXGN::Phenome::Population->new( $dbh, $population_id );
26 my $name = $pop->get_name();
28 print
29 "Pragma: \"no-cache\"\nContent-Disposition:filename=phenotype_data_${population_id}.txt\nContent-type:application/data\n\n";
31 #print "Content-Type: text/plain\n\n";
33 print "Phenotype data for $name\n\n\n";
36 my @individuals = $pop->get_individuals();
38 my ( @pop_id, @name, @obs_id, @cvterm, @definition, @value );
40 my $individual_obj = $individuals[1];
42 my $indv_id = $individual_obj->get_individual_id();
44 my @cvterms = $individual_obj->get_unique_cvterms($indv_id);
46 print "Lines \t";
47 print join( "\t", @cvterms );
49 my ( $pop_id, $pop_name, $ind_id, $ind_name, $obs_id, $cvterm, $definition,
50 $value )
51 = $pop->get_pop_raw_data();
53 my $old_ind_id = "";
55 for ( my $i = 0 ; $i < @$pop_id ; $i++ )
57 if ( $old_ind_id ne $ind_id->[$i] )
60 print "\n$ind_name->[$i]\t";
63 foreach my $t (@cvterms)
65 my $term = $cvterm->[$i];
66 if ( $t =~ /^$term$/i )
68 print "$value->[$i]\t";
71 $old_ind_id = $ind_id->[$i];