src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl 1.6
1.6 2009/03/20 21:46:03 larrym
pull metadata out of README.txt (if any is available)
Index: src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl,v
retrieving revision 1.5
retrieving revision 1.6
diff -b -B -U 4 -r1.5 -r1.6
--- src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl 2 Dec 2008 22:09:12 -0000 1.5
+++ src/hg/encode/encodeDownloadsPage/encodeDownloadsPage.pl 20 Mar 2009 21:46:03 -0000 1.6
@@ -23,18 +23,15 @@
use lib "/cluster/bin/scripts";
use Encode;
use HgAutomate;
use HgDb;
-#use RAFile;
-#use SafePipe;
use vars qw/
$opt_fileType
$opt_preamble
$opt_db
$opt_verbose
/;
-# $opt_timing
sub usage {
print STDERR <<END;
usage: hgEncodeDownloads.pl {index.html} [downloads-dir]
@@ -131,11 +128,11 @@
usage() if (scalar(@ARGV) < 1);
# Get command-line args
-my $indexHtml = $ARGV[0]; # currently not used
+my $indexHtml = $ARGV[0];
my $downloadsDir = cwd();
- $downloadsDir = $ARGV[1] if (scalar(@ARGV) > 1);
+$downloadsDir = $ARGV[1] if (scalar(@ARGV) > 1);
# Now find some files
my @fileList = `ls -hog --time-style=long-iso $downloadsDir/$fileMask 2> /dev/null`;
# -rw-rw-r-- 1 101M 2008-10-27 14:34 /usr/local/apache/htdocs/goldenPath/hg18/wgEncodeYaleChIPseq/wgEncodeYaleChIPseqSignalK562Pol2.wig.gz
@@ -149,8 +146,14 @@
open( OUT_FILE, "> $downloadsDir/$indexHtml") || die "SYS ERROR: Can't write to \'$downloadsDir/$indexHtml\' file; error: $!\n";
#print OUT_FILE @fileList;
+my @readme;
+if(open(README, "$downloadsDir/README.txt")) {
+ @readme = <README>;
+ close(README);
+}
+
# Start the page
htmlStartPage(*OUT_FILE,$downloadsDir,$indexHtml,$preamble);
print OUT_FILE "<TABLE cellspacing=0>\n";
@@ -165,13 +168,14 @@
my ($tableName,$dataType) = split('\.', $fileName); # tableName I hope
#print OUT_FILE "Path:$file[5] File:$fileName Table:$tableName\n";
my $releaseDate = "";
- my $metaData = "";
+ my %metaData;
+ my $typePrefix = "";
my $results = $db->quickQuery("select type from trackDb where tableName = '$tableName'");
if($results) {
my ($type) = split(/\s+/, $results); # White space
- $metaData = "Type:$type ";
+ $metaData{type} = $type;
$results = $db->quickQuery("select settings from trackDb where tableName = '$tableName'");
#print OUT_FILE "Settings:$results\n";
if( $results ) {
my @settings = split(/\n/, $results); # New Line
@@ -184,9 +188,9 @@
my @parent = split(/\n/, $parentSettings); # New Line
while (@parent) {
my @par = split(/\s+/, (shift @parent));
if( $par[0] eq "wgEncode" ) {
- $metaData = "ENCODE $metaData";
+ $typePrefix = "ENCODE ";
}
}
}
} elsif($pair[0] eq "releaseDate") {
@@ -197,22 +201,50 @@
my (undef, undef, undef, $rMDay, $rMon, $rYear) = Encode::restrictionDate(timelocal(0,0,0,$DD,$MM,$YYYY));
$rMon = $rMon + 1;
$releaseDate = sprintf("%04d-%02d-%02d", (1900 + $rYear),$rMon,$rMDay);
} elsif($pair[0] eq "cell" || $pair[0] eq "antibody" || $pair[0] eq "promoter") {
- $metaData .= "$pair[0]:$pair[1] ";
+ $metaData{$pair[0]} = $pair[1];
}
}
}
} else {
if($dataType eq "fastq" || $dataType eq "tagAlign" || $dataType eq "csfasta" || $dataType eq "csqual") {
- $metaData = "ENCODE Type:$dataType";
+ $metaData{type} = $dataType;
+ $typePrefix = "ENCODE ";
my ($YYYY,$MM,$DD) = split('-',$file[3]);
$MM = $MM - 1;
my (undef, undef, undef, $rMDay, $rMon, $rYear) = Encode::restrictionDate(timelocal(0,0,0,$DD,$MM,$YYYY));
$rMon = $rMon + 1;
$releaseDate = sprintf("%04d-%02d-%02d", (1900 + $rYear),$rMon,$rMDay);
}
+
+ # pull metadata out of README.txt (if any is available).
+ my $active = 0;
+ for my $line (@readme) {
+ chomp $line;
+ if($line =~ /file: $fileName/) {
+ $active = 1;
+ } elsif($active) {
+ if($line =~ /(.*):(.*)/) {
+ my ($name, $var) = ($1, $2);
+ $metaData{$name} = $var if($name !~ /restricted/i);
+ } else {
+ last;
+ }
+ }
+ }
+ }
+ my @tmp;
+ if(my $type = $metaData{type}) {
+ push(@tmp, "${typePrefix}type: $type");
+ delete $metaData{type};
+ }
+ if(my $cell = $metaData{cell}) {
+ push(@tmp, "cell: $cell");
+ delete $metaData{cell};
}
+ push(@tmp, "$_: " . $metaData{$_}) for (sort keys %metaData);
+ my $metaData = join("; ", @tmp);
# Now file contains: [file without path] [tableName] [size] [date] [releaseDate] [fullpath/file]
htmlTableRow(*OUT_FILE,$fileName,$file[2],$file[3],$releaseDate,$metaData);
}
print OUT_FILE "</TABLE>\n";