--- ModelSaplingLoader.pm 2010/03/27 15:19:26 1.9 +++ ModelSaplingLoader.pm 2010/04/28 14:04:49 1.10 @@ -59,7 +59,11 @@ # Get the parameters. my ($class, $erdb, $options) = @_; # Create the table list. - my @tables = sort qw(StructuralCue IsFoundIn Compound HasAliasOf AliasType HasReactionAliasOf Reaction Involves IsTriggeredBy RoleSet IsCombinationOf IsCategorizedInto EcNumber IsConsistentWith IsStimulatedBy FeatureSet IsSetOf IsRequiredBy Model IsModeledBy); # Encompasses); + my @tables = sort qw(StructuralCue IsFoundIn Compound HasAliasOf AliasType + HasReactionAliasOf Reaction Involves IsTriggeredBy + RoleSet IsCombinationOf IsCategorizedInto EcNumber + IsConsistentWith IsStimulatedBy FeatureSet IsSetOf + IsRequiredBy Model IsModeledBy ModelUser); # Encompasses); # Create the BaseSaplingLoader object. my $retVal = BaseSaplingLoader::new($class, $erdb, $options, @tables); # Return it. @@ -405,12 +409,13 @@ my $sapling = $self->db(); ## TRS: Get hash of valid genome IDs. my $genomeHash = $sapling->GenomeHash(); - my $ModelList = $model->database()->GetDBTable("MODEL LIST"); + my $ModelList = $model->database()->GetDBTable("MODELS"); my $ModelStats = $model->database()->GetDBTable("MODEL STATS"); - for (my $i=0; $i < $ModelStats->size(); $i++) { - my $Row = $ModelStats->get_row($i); + for (my $i=0; $i < $ModelList->size(); $i++) { + my $ListRow = $ModelList->get_row($i); + my $Row = $ModelStats->get_row_by_key($ListRow->{id}->[0], "Model ID"); if (defined($Row) && defined($Row->{"Model ID"}->[0])) { - my @LoadingArray = ($Row->{"Model ID"}->[0],"","",0,0,0,"",0,0,0,0,0,0,0,0,0,0,0,0,"","",0,0,"",0,0); + my @LoadingArray = ($Row->{"Model ID"}->[0],"","",0,0,0,"",0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"",0,0,"master",0,-1,""); if (defined($Row->{"Genome ID"}->[0]) && $genomeHash->{$Row->{"Genome ID"}->[0]}) { if (defined($Row->{"Organism name"}->[0])) { $LoadingArray[1] = $Row->{"Organism name"}->[0]; @@ -467,10 +472,10 @@ $LoadingArray[18] = $Row->{"Gap filling minimal objective"}->[0]; } if (defined($Row->{"Build date"}->[0])) { - $LoadingArray[19] = $Row->{"Build date"}->[0]; + $LoadingArray[19] = FixDate($Row->{"Build date"}->[0]); } if (defined($Row->{"Gap fill date"}->[0])) { - $LoadingArray[20] = $Row->{"Gap fill date"}->[0]; + $LoadingArray[20] = FixDate($Row->{"Gap fill date"}->[0]); } if (defined($Row->{"Version"}->[0])) { $LoadingArray[21] = $Row->{"Version"}->[0]; @@ -478,6 +483,10 @@ if (defined($Row->{"Gap fill version"}->[0])) { $LoadingArray[22] = $Row->{"Gap fill version"}->[0]; } + $LoadingArray[26] = $ListRow->{"owner"}->[0]; + $LoadingArray[27] = $ListRow->{"date"}->[0]; + $LoadingArray[28] = $ListRow->{"status"}->[0]; + $LoadingArray[29] = $ListRow->{"message"}->[0]; if ($Row->{"Model ID"}->[0] =~ m/Core\d+\.\d+V\d+\.\d+/) { $LoadingArray[25] = 1; } elsif (defined($ModelList->get_row_by_key($Row->{"Model ID"}->[0],"MODEL ID"))) { @@ -488,10 +497,17 @@ $LoadingArray[24] = $ModelList->get_row_by_key($Row->{"Model ID"}->[0],"MODEL ID")->{"JOB ID"}->[0]; } } - for my $j (3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24,25) { + for my $j (3,4,5,7,8,9,10,11,12,13,14,15,16,17,18,21,22,24,25,27,28) { $LoadingArray[$j] = 0 if ($LoadingArray[$j] =~ /[a-z]/i); } - $self->PutE(Model => $LoadingArray[0], organismName => $LoadingArray[1], source => $LoadingArray[2], totalGenes => $LoadingArray[3], gramPositiveGenes => $LoadingArray[4],gramNegativeGenes => $LoadingArray[5], class => $LoadingArray[6], genesWithFunction => $LoadingArray[7], genesWithReactions => $LoadingArray[8], subsystemGenes => $LoadingArray[9], subsystemGenesWithReactions => $LoadingArray[10], nonsubsystemGenes => $LoadingArray[11], nonsubsystemGenesWithReactions => $LoadingArray[12], numberOfReactions => $LoadingArray[13], numberOfTransporters => $LoadingArray[14], gapFillingReactions => $LoadingArray[15], gapFillingTime => $LoadingArray[16], gapFillingObjective => $LoadingArray[17], gapFillingMinimalObjective => $LoadingArray[18], buildDate => $LoadingArray[19], gapFillDate => $LoadingArray[20], version => $LoadingArray[21], gapFillVersion => $LoadingArray[22], directory => $LoadingArray[23], jobid => $LoadingArray[24], obsolete => $LoadingArray[25]); + $self->PutE(Model => $LoadingArray[0], organismName => $LoadingArray[1], source => $LoadingArray[2], totalGenes => $LoadingArray[3], gramPositiveGenes => $LoadingArray[4],gramNegativeGenes => $LoadingArray[5], class => $LoadingArray[6], genesWithFunction => $LoadingArray[7], genesWithReactions => $LoadingArray[8], subsystemGenes => $LoadingArray[9], subsystemGenesWithReactions => $LoadingArray[10], nonsubsystemGenes => $LoadingArray[11], nonsubsystemGenesWithReactions => $LoadingArray[12], numberOfReactions => $LoadingArray[13], numberOfTransporters => $LoadingArray[14], gapFillingReactions => $LoadingArray[15], gapFillingTime => $LoadingArray[16], gapFillingObjective => $LoadingArray[17], gapFillingMinimalObjective => $LoadingArray[18], buildDate => $LoadingArray[19], gapFillDate => $LoadingArray[20], version => $LoadingArray[21], gapFillVersion => $LoadingArray[22], directory => $LoadingArray[23], jobid => $LoadingArray[24], obsolete => $LoadingArray[25], owner => $LoadingArray[26], modificationTime => $LoadingArray[27], status => $LoadingArray[28], message => $LoadingArray[29]); + # Get the list of users. + my $userList = $ListRow->{"users"}; + if (defined $userList) { + for my $user (@$userList) { + $self->PutE(ModelUser => $LoadingArray[0], users => $user); + } + } #Adding the relationship between model and genome if (defined($Row->{"Genome ID"}->[0])) { $self->PutR(IsModeledBy => $Row->{"Genome ID"}->[0],$LoadingArray[0]); @@ -566,4 +582,10 @@ } } +sub FixDate { + my ($date) = @_; + my $retVal = ($date eq 'NA' ? 0 : $date); + return $retVal; +} + 1;