src/hg/encode/encodeValidate/doEncodeValidate.pl 1.218
1.218 2010/03/24 21:39:03 kate
1. Allow control terms to be used with any variable 2. Add co-PI to lab metadata
Index: src/hg/encode/encodeValidate/doEncodeValidate.pl
===================================================================
RCS file: /projects/compbio/cvsroot/kent/src/hg/encode/encodeValidate/doEncodeValidate.pl,v
retrieving revision 1.217
retrieving revision 1.218
diff -b -B -U 4 -r1.217 -r1.218
--- src/hg/encode/encodeValidate/doEncodeValidate.pl 24 Mar 2010 03:16:26 -0000 1.217
+++ src/hg/encode/encodeValidate/doEncodeValidate.pl 24 Mar 2010 21:39:03 -0000 1.218
@@ -1072,10 +1072,18 @@
for my $pair (@pairs) {
my ($var, $term) = split('=', $pair);
if ($var eq $variable) {
next if ($term eq "None");
- die "'$term' is not a registered '$cvTypeVar' term\n" unless defined($terms{$cvTypeVar}->{$term}) ;
- my $tag = $terms{$cvTypeVar}->{$term}->{'tag'};
+ my $tag;
+ if (defined($terms{$cvTypeVar}->{$term})) {
+ $tag=$terms{$cvTypeVar}->{$term}->{"tag"};
+ } else {
+ if (defined($terms{"control"}->{$term})) {
+ $tag=$terms{"control"}->{$term}->{"tag"};
+ } else {
+ die "'$term' is not a registered '$cvTypeVar' term\n";
+ }
+ }
if (!defined($tags{$tag})) {
# suppress dups, requested by Brian
$setting = "$setting $tag=$term";
$tags{$tag} = $term;
@@ -1645,15 +1653,25 @@
my $priority = $db->quickQuery("select max(priority) from trackDb where settings like '%subTrack $compositeTrack%'") || 0;
$ddfLineNumber = 1;
+# use pi.ra file to map pi/lab/institution/grant/project for metadata line
+my $labRef = Encode::getLabs($configPath);
+my %labs = %{$labRef};
+
foreach my $ddfLine (@ddfLines) {
$ddfLineNumber++;
my $diePrefix = "ERROR on DDF lineNumber $ddfLineNumber:";
my $view = $ddfLine->{view};
my $type = $daf->{TRACKS}{$view}{type} || die "Missing DAF entry for view '$view'\n";
my $sql = $daf->{TRACKS}{$view}{sql};
- my $metadata = "project=wgEncode grant=$daf->{grant} lab=$daf->{lab} dataType=$daf->{dataType}";
+ my $lab = $daf->{lab};
+ my $metadata = "project=wgEncode grant=$daf->{grant} lab=$lab";
+ if (defined($labs{$lab}) && $labs{$lab}->{pi} ne $labs{$lab}->{grant}) {
+ # add co-PI name
+ $metadata .= "($labs{$lab}->{pi})";
+ }
+ $metadata .= " dataType=$daf->{dataType}";
$metadata .= " cell=$ddfLine->{cell}" if $ddfLine->{cell}; # force some order
$metadata .= " antibody=$ddfLine->{antibody}" if $ddfLine->{antibody};
for my $key (keys %{$ddfLine}) {
my $value = $ddfLine->{$key};