[Bio] / FigKernelPackages / Observation.pm Repository:
ViewVC logotype

Diff of /FigKernelPackages/Observation.pm

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1.19, Wed Jun 27 14:59:39 2007 UTC revision 1.20, Wed Jun 27 22:14:01 2007 UTC
# Line 124  Line 124 
124    
125  =item SIGNALP_CELLO_TMPRED (loc)  =item SIGNALP_CELLO_TMPRED (loc)
126    
127    =item PDB (seq)
128    
129  =item TMHMM (loc)  =item TMHMM (loc)
130    
131  =item HMMTOP (loc)  =item HMMTOP (loc)
# Line 414  Line 416 
416          my $location_flag = 0;          my $location_flag = 0;
417          my $sims_flag=0;          my $sims_flag=0;
418          my $cluster_flag = 0;          my $cluster_flag = 0;
419            my $pdb_flag = 0;
420          foreach my $class (@$classes){          foreach my $class (@$classes){
421              if($class =~ /(IPR|CDD|PFAM)/){              if($class =~ /(IPR|CDD|PFAM)/){
422                  $domain_classes{$class} = 1;                  $domain_classes{$class} = 1;
# Line 438  Line 441 
441              {              {
442                  $cluster_flag = 1;                  $cluster_flag = 1;
443              }              }
444                elsif ($class eq "PDB")
445                {
446                    $pdb_flag = 1;
447                }
448    
449          }          }
450    
451          if ($identical_flag ==1)          if ($identical_flag ==1)
# Line 464  Line 472 
472          {          {
473              get_cluster_observations($fid,\@matched_datasets);              get_cluster_observations($fid,\@matched_datasets);
474          }          }
475            if ($pdb_flag == 1)
476            {
477                get_pdb_observations($fid,\@matched_datasets);
478            }
479    
480    
481      }      }
482    
# Line 487  Line 500 
500          if ($dataset->{'class'} eq "CLUSTER"){          if ($dataset->{'class'} eq "CLUSTER"){
501              $object = Observation::Cluster->new($dataset);              $object = Observation::Cluster->new($dataset);
502          }          }
503            if ($dataset->{'class'} eq "PDB"){
504                $object = Observation::PDB->new($dataset);
505            }
506    
507          push (@$objects, $object);          push (@$objects, $object);
508      }      }
509    
# Line 717  Line 734 
734      }      }
735  }  }
736    
737    =head3 get_pdb_observations() (internal)
738    
739    This methods sets the type and class for pdb observations
740    
741    =cut
742    
743    sub get_pdb_observations{
744        my ($fid,$datasets_ref) = (@_);
745    
746        my $fig = new FIG;
747    
748        print STDERR "get pdb obs called\n";
749        foreach my $attr_ref ($fig->get_attributes($fid,'PDB')) {
750    
751            my $key = @$attr_ref[1];
752            my($key1,$key2) =split("::",$key);
753            my $value = @$attr_ref[2];
754            my ($evalue,$location) = split(";",$value);
755    
756            if($evalue =~/(\d+)\.(\d+)/){
757                my $part2 = 1000 - $1;
758                my $part1 = $2/100;
759                $evalue = $part1."e-".$part2;
760            }
761    
762            my($start,$stop) =split("-",$location);
763    
764            my $url = @$attr_ref[3];
765            my $dataset = {'class' => 'PDB',
766                           'type' => 'seq' ,
767                           'acc' => $key2,
768                           'evalue' => $evalue,
769                           'start' => $start,
770                           'stop' => $stop
771                           };
772    
773            push (@{$datasets_ref} ,$dataset);
774        }
775    
776    }
777    
778    
779    
780    
781  =head3 get_cluster_observations() (internal)  =head3 get_cluster_observations() (internal)
782    
783  This methods sets the type and class for cluster observations  This methods sets the type and class for cluster observations
# Line 1041  Line 1102 
1102      return $self->{database};      return $self->{database};
1103  }  }
1104    
1105    ############################################################
1106    ############################################################
1107    package Observation::PDB;
1108    
1109    use base qw(Observation);
1110    
1111    sub new {
1112    
1113        my ($class,$dataset) = @_;
1114        my $self = $class->SUPER::new($dataset);
1115        $self->{acc} = $dataset->{'acc'};
1116        $self->{evalue} = $dataset->{'evalue'};
1117        $self->{start} = $dataset->{'start'};
1118        $self->{stop} = $dataset->{'stop'};
1119        bless($self,$class);
1120        return $self;
1121    }
1122    
1123    =head3 display()
1124    
1125    displays data stored in best_PDB attribute and in Ontology server for given PDB id
1126    
1127    =cut
1128    
1129    sub display{
1130        my ($self,$gd,$fid) = @_;
1131    
1132        my $dbmaster = DBMaster->new(-database =>'Ontology');
1133    
1134        print STDERR "PDB::display called\n";
1135    
1136        my $acc = $self->acc;
1137    
1138        print STDERR "acc:$acc\n";
1139        my ($pdb_description,$pdb_source,$pdb_ligand);
1140        my $pdb_objs = $dbmaster->pdb->get_objects( { 'id' => $acc } );
1141        if(!scalar(@$pdb_objs)){
1142            $pdb_description = "not available";
1143            $pdb_source = "not available";
1144            $pdb_ligand = "not available";
1145        }
1146        else{
1147            my $pdb_obj = $pdb_objs->[0];
1148            $pdb_description = $pdb_obj->description;
1149            $pdb_source = $pdb_obj->source;
1150            $pdb_ligand = $pdb_obj->ligand;
1151        }
1152    
1153        my $lines = [];
1154        my $line_data = [];
1155        my $line_config = { 'title' => "PDB hit for $fid",
1156                            'short_title' => "best PDB",
1157                            'basepair_offset' => '1' };
1158    
1159        my $fig = new FIG;
1160        my $seq = $fig->get_translation($fid);
1161        my $fid_stop = length($seq);
1162    
1163        my $fid_element_hash = {
1164            "title" => $fid,
1165            "start" => '1',
1166            "end" =>  $fid_stop,
1167            "color"=> '1',
1168            "zlayer" => '1'
1169            };
1170    
1171        push(@$line_data,$fid_element_hash);
1172    
1173        my $links_list = [];
1174        my $descriptions = [];
1175    
1176        my $name;
1177        $name = {"title" => 'id',
1178                 "value" => $acc};
1179        push(@$descriptions,$name);
1180    
1181        my $description;
1182        $description = {"title" => 'pdb description',
1183                        "value" => $pdb_description};
1184        push(@$descriptions,$description);
1185    
1186        my $score;
1187        $score = {"title" => "score",
1188                  "value" => $self->evalue};
1189        push(@$descriptions,$score);
1190    
1191        my $start_stop;
1192        my $start_stop_value = $self->start."_".$self->stop;
1193        $start_stop = {"title" => "start-stop",
1194                       "value" => $start_stop_value};
1195        push(@$descriptions,$start_stop);
1196    
1197        my $source;
1198        $source = {"title" => "source",
1199                  "value" => $pdb_source};
1200        push(@$descriptions,$source);
1201    
1202        my $ligand;
1203        $ligand = {"title" => "pdb ligand",
1204                   "value" => $pdb_ligand};
1205        push(@$descriptions,$ligand);
1206    
1207        my $link;
1208        my $link_url ="http://www.rcsb.org/pdb/explore/explore.do?structureId=".$acc;
1209    
1210        $link = {"link_title" => $acc,
1211                 "link" => $link_url};
1212        push(@$links_list,$link);
1213    
1214        my $pdb_element_hash = {
1215            "title" => "PDB homology",
1216            "start" => $self->start,
1217            "end" =>  $self->stop,
1218            "color"=> '6',
1219            "zlayer" => '3',
1220            "links_list" => $links_list,
1221            "description" => $descriptions};
1222    
1223        push(@$line_data,$pdb_element_hash);
1224        $gd->add_line($line_data, $line_config);
1225    
1226        return $gd;
1227    }
1228    
1229    1;
1230    
1231  ############################################################  ############################################################
1232  ############################################################  ############################################################

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3