4 A small script for downloading population
5 phenotype raw data in tab delimited format.
9 Isaak Y Tecle (iyt2@cornell.edu)
15 use CXGN
::DB
::Connection
;
16 use CXGN
::Phenome
::Population
;
17 use CXGN
::Phenome
::Individual
;
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();
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);
47 print join( "\t", @cvterms );
49 my ( $pop_id, $pop_name, $ind_id, $ind_name, $obs_id, $cvterm, $definition,
51 = $pop->get_pop_raw_data();
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];