src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl 1.25

1.25 2010/01/27 22:22:34 tdreszer
Altered sort order. take only last matching line of metadata from fileDb.ra. Don't show antibody if its eq input
Index: src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl,v
retrieving revision 1.24
retrieving revision 1.25
diff -b -B -U 4 -r1.24 -r1.25
--- src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl	22 Jan 2010 17:31:41 -0000	1.24
+++ src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl	27 Jan 2010 22:22:34 -0000	1.25
@@ -357,9 +357,9 @@
     my $submitDate = "";
     my %metaData;
 
     ### TODO: Developer: set sort order here; sortables must have same number of strings and '~' is lowest val printable
-    my @sortFields = ("cell","dataType","rnaExtract","localization","fragSize","mapAlgorithm","ripAntibody","ripTgtProtein","treatment","antibody","lab","type","view","level","annotation","replicate","subId");
+    my @sortFields = ("cell","dataType","rnaExtract","localization","fragSize","mapAlgorithm","ripAntibody","ripTgtProtein","treatment","antibody","protocol","input","lab","type","view","level","annotation","replicate","subId");
     my @sortables = map( "~", (1..scalar(@sortFields))); # just has to have a tilde for each field
     my $typePrefix = "";
     my $results = $db->quickQuery("select type from $database.trackDb where tableName = '$tableName'");
     if($results) {
@@ -372,9 +372,9 @@
     $results = $db->quickQuery("select settings from $database.trackDb where tableName = '$tableName'");
     if(!$results) {
         ### TODO: This needs to be replaced with a select from a fileDb table
         if(stat("fileDb.ra")) {
-            $results = `grep metadata fileDb.ra | grep '$fileName'`;
+            $results = `grep metadata fileDb.ra | grep '$fileName' | tail -1`;  # Always prefer the last line found
             chomp $results;
             $results =~ s/^ +//;
             $results =~ s/ +$//;
         }
@@ -408,13 +408,20 @@
                 my ( $tagRef, $valRef ) = Encode::metadataLineToArrays($pair[1]);
                 my @tags = @{$tagRef};
                 my @vals = @{$valRef};
                 my $tix = 0;
+                my $input = "";
                 while($tags[$tix]) {
                     if($tags[$tix] eq "dateUnrestricted") {
                         $releaseDate = $vals[$tix];
                     } elsif($tags[$tix] eq "dateSubmitted") {
                         $submitDate = $vals[$tix];
+                    } elsif($tags[$tix] eq "antibody" || $tags[$tix] eq "input") {
+                        if($input eq "") {
+                            $input = $vals[$tix];
+                        } elsif($input eq $vals[$tix]) {
+                            $input = "removeAntiBodyDup";
+                        }
                     }
                     $tix++;
                 }
                 if($metaData{type}) {
@@ -422,8 +429,9 @@
                     unshift @vals, $metaData{type};
                 }
                 my %remove; # Don't display these metadata values
                 $remove{project} = $remove{composite} = $remove{fileName} = $remove{dateSubmitted} = $remove{dateUnrestricted} = $remove{parentTable} = 1;
+                $remove{antibody} = 1 if($input eq "removeAntiBodyDup");  # remove antibody if input=antibody
                 ( $tagRef, $valRef ) = metadataArraysRemoveHash( \@tags,\@vals,\%remove );
                 ( $tagRef, $valRef ) = metadataArraysMoveValuesToFront($tagRef, $valRef,\@sortFields);
                 @tags = @{$tagRef};
                 @vals = @{$valRef};